Graphical user interface and operator console management system for distributed terminal network

ABSTRACT

A graphical user interface (GUI) and operator console management system for a distributed terminal network is described. In some embodiments, the terminals may be hardware terminals, kiosks, or clients. In some embodiments, a security analysis may be performed, and security scores may be determined, for visitors requesting operations at terminals based on an operator configuration. Security scores may be determined by a provider, in communication with the operator terminals, based on aggregation of a plurality of factors, wherein each factor may be weighted. The factors may incorporate operator settings or preferences. In one embodiment, the factors include one or more facial recognition factors. The one or more facial recognition factors may be used for biometric authentication. The provider may use the security scores to determine user privileges or permissions for the operations. The provider may deliver instructions or messages to the terminals based on the determinations.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/109,079 filed on Dec. 1, 2020, which is a continuation of U.S. patentapplication Ser. No. 16/817,556, filed on Mar. 12, 2020, now U.S. Pat.No. 10,911,463, issued Feb. 2, 2021, which claims priority from U.S.Provisional Applications 62/975,006, filed Feb. 11, 2020, 62/972,025,filed Feb. 9, 2020, 62/958,572, filed Jan. 8, 2020, 62/954,451, filedDec. 28, 2019, 62/952,408, filed Dec. 22, 2019, and 62/945,577, filedDec. 9, 2019. The contents of the prior applications are incorporatedherein by reference in their entirety.

TECHNICAL FIELD

This invention relates generally to terminals, and more specifically, tosecurity and management of a distributed network of terminals usingmethods such as, for example, operator controls/graphical userinterfaces (GUIs), biometric authentication and decentralized learning.Terminals may, in one example, be hardware terminals such as vendingmachine networks or kiosk networks.

BACKGROUND

Distributed terminal networks are becoming more prevalent. Accordingly,there is a growing need for efficient and secure distributed terminalsystems, such as to protect against emerging security risks. Currentsystems and methods do not possess a structure or configuration thatprovides as quick or robust security as provided herein. For example,current systems and methods do not leverage a combination of securityfactor payloads constructed by piecemeal request and response asdescribed herein. Current systems and methods are therefore not as quickor adaptive. For example, current systems and methods do not provide ahardware-service configuration and workflow that allows for quick androbust deployment of security features, reinstatement and storage ofmachine states, etc. Further, current systems and methods are not easilyupdated and new advancements in security are not easily leveraged orimplemented in current systems and methods.

SUMMARY

Embodiments include a method, system, and computer program product forcontrolling operations at distributed terminals. In accordance with oneor more embodiments, a computer implemented method may include agraphical user interface (GUI) and operator console management systemfor a distributed terminal network. In some embodiments, the terminalsmay be hardware terminals, kiosks, or clients. In some embodiments, asecurity analysis may be performed, and security scores may bedetermined, for visitors requesting operations at terminals based on anoperator configuration. Security scores may be determined by a provider,in communication with the operator terminals, based on aggregation of aplurality of factors, wherein each factor may be weighted. The factorsmay incorporate operator settings or preferences. In one embodiment, thefactors include one or more facial recognition factors. The one or morefacial recognition factors may be used for biometric authentication. Theprovider may use the security scores to determine user privileges orpermissions for the operations. The provider may deliver instructions ormessages to the terminals based on the determinations.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention. For a better understanding of the invention with advantagesand features, refer to the description and to the drawings.

Some examples of the advantages of the presented technology includespeed, efficiency, and security over present systems. In one example, bycarrying out given security protocols by a software service provider inthe presented technology, modifications to the protocols to adapt toemerging needs can be rapidly implemented and deployed to some or all ofthe distributed network. In another example, the presented technologyallows for operator tailoring of security preferences and protocols.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a general network environment that can be usedwith terminals, hardware terminals, kiosks, nodes, or clients.

FIG. 2A is a diagram of a general network environment that can be usedwith terminals, hardware terminals, kiosks, nodes, or clients, servicedby a software service vendor.

FIG. 2B. is a diagram of a network architecture environment that can beused with terminals, hardware terminals, kiosks, nodes, or clients,serviced by, for example, a software service vendor.

FIG. 3 is a diagram of a hardware terminal.

FIG. 4 is another diagram of a hardware terminal.

FIG. 5 is a flowchart showing a general transfer process

FIG. 6 is a flowchart showing a detailed view of a input process

FIG. 7 is a flowchart showing a detailed view of a output process

FIG. 8 is a flowchart showing a general view of a score analysis process

FIG. 9A is a flowchart showing an input process.

FIG. 9B is a flowchart showing an output process.

FIG. 9C is a flowchart showing an input process connected with aterminal machine state.

FIG. 9D is a flowchart showing an output process connected with aterminal machine state.

FIG. 10 is a diagram showing a decentralized learning network.

DETAILED DESCRIPTION

Distributed terminal networks are becoming more prevalent. Accordingly,there is a growing need for efficient and secure distributed terminalsystems, such as to protect against emerging security risks.

Acronyms

-   API—Application Programming Interface-   CNN—Convolutional Neural Network-   FL—Federated Learning-   HTTP/HTTPS—Hyper Text Transfer Protocol/Hyper Text Transfer Protocol    Secure-   KYT—Know-Your-Transaction-   ML—Machine Learning-   P2P—Peer-to-Peer-   POS—Point-of-Sale-   REST—Representational State Transfer-   TLS/SSL—Transport Layer Security/Secure Sockets Layer-   VPC—Virtual Private Cloud-   VPN—Virtual Private Network

Terminology Application Programming Interface

API technologies provide routines, protocols, and tools for buildingsoftware applications and specifies how software components shouldinteract.

Cloud Computing

Cloud computing is a model that promotes ubiquitous, on-demand networkaccess to shared computing.

Fog Computing

Horizontal system level architecture that distributes computing,storage, control and networking functions closer to the users along acloud-to-thing continuum.

Public Keys and Private Keys

Public and private keys are created in pairs for each entity involved ina transmission and encrypt and decrypt information during the initialpart of the transmission so that only the sender and recipient of thetransmission can decrypt and read the information. Public key isavailable to everyone while the private key is known only to the creatorof the keys.

Point-of-Sale

A point-of-sale (POS) may be any interface, device, node, or locationthat allows for a transaction to occur. For example, a POS may be adevice, such as a mobile phone, computer, ATM kiosk or terminal.

Infrastructure

In one embodiment, a cloud network of points-of-sale, nodes, devices, orterminals may be provided. Each POS may be capable of providing,interacting with, or transacting funds, such as fiat or cash, andvirtual currency.

A virtual currency POS or terminal may be a hardware terminal thatallows for the purchase, sale, or exchange of funds or fiat currency forcryptocurrency. An operator may purchase and/or provide POS or terminalsat selected locations to allow customer access.

In one embodiment, member POS or terminals in a cloud network mayinteract with software services provided by a vendor, for example. Theterminals may include special software and/or hardware capabilities toallow interaction with the vendor services. Additionally, the POS orterminals may include special software and/or hardware capabilities toallow virtual currency transactions.

A POS or terminal may or may not be configured to possess a static IPaddress. A static IP address may be whitelisted, for example, bysoftware services of the vendor to perform particular actions, makeparticular requests, etc. The vendor may partially, or entirely, blockIP addresses that are not whitelisted, or known, etc. The vendor mayprovide full, limited, or restricted privileges to IP addresses that arewhitelisted, or known, etc. In one example, SSH privileges for vendorservers and the like may be blocked or restricted for all IP addressesexcept a selected set of known IP addresses.

POS or terminal peripherals may be controlled, for example, viajavascript using ActiveX controls, or using compiled code to transmitmessages directly over serial hardware connections.

Software Services

Described in this disclosure are various software services.

A software service may be delivered, or provided by, a third partyservice, or vendor. The third party service, for example, may be asoftware service of a vendor. The software service may be hosted at avendor-owned location, a third party location, or a proxy location, forexample.

Software services may utilize any combination of the below components,for example.

Transport Layer Security/Secure Sockets Layer (TLS/SSL)

Transport Layer Security/Secure Sockets Layer (TLS/SSL) connections makeuse of public and private keys among parties when establishing aconnection and secure almost all transmissions over the internet orcomputer networks, including emails, web browsing, logins, and financialtransactions, ensuring that all data that passes between a web serverand a browser remains private and secure.

X.509 Certificates

X.509 certificates are digital certificates administered by certificateauthorities that use the X.509 PKI standard to verify that a public keybelongs to the user, computer, or service identity in the certificateand are used worldwide across public and private sectors.

X.509 Attribute Certificates

X.509 attribute certificates can encode attributes (such as name, dateof birth, address, and unique identifier number), are attachedcryptographically to the X.509 certificate, and are administered byattribute certificate authorities.

Hyper Text Transfer Protocol

It will be understood that the terms HTTP and HTTPS will be usedinterchangeably and that use of either term includes either alternative.

Representational State Transfer

Representational state transfer (REST) is a software architectural stylethat defines a set of constraints to be used for creating Web services.Web services that conform to the REST architectural style, calledRESTful Web services, provide interoperability between computer systemson the Internet.

Virtual Private Networks

One element of a software service may be a Virtual Private Network(VPN). A VPN may establish a secure and private tunnel from a network,terminal, or device, for example to another network element such as avendor service, for example.

Security Groups

One element of a software service may be a security group. A securitygroup, rules may be defined that dictate the allowed inbound and/oroutbound traffic to a server, for example. For example, a security rulemay specify to allow SSH access, from a particular IP address, on aparticular port or port range, and using a particular protocol, such asTCP.

Virtual Private Cloud

One element of a software service may be a Virtual Private Cloud (VPC).A VPC allows isolation of shared cloud resources, for example. In onemethod, private IP subnets may be assigned to a VPC user that isaccompanied by a VPN function or access that secures, by means ofauthentication and encryption, the user's VPC resources.

Queues

One element of a software service may be a processing queue. Forexample, the queue may be processed in a first-in-first-out (FIFO) orlast-in-first-out (LIFO) order. The queue may collect several processesto be carried out.

Server Architecture

A software service may be hosted on elastic server architecture, in oneexample. In an elastic architecture, computing resources may beautomatically increased or decreased to meet computing needs. Computingthresholds may be preset or configured. When a threshold is exceeded forexample, additional computing resources may be allocated.

Serverless Architecture

In another example, a software service may be hosted using serverlessarchitecture. In a serverless architecture, computing resources areallocated as necessary on a per-request basis. After the request isprocessed, the computing resources are unallocated, or returned.

Data Structures

Various data structures may be used in conjunction with the softwareservices. For example, various data structures may be used alone, or incombination, to store customer data/metadata, transaction data, etc.

Some example data structures include arrays, stacks, queues, linkedlists, trees, graphs, tries, and hash tables.

Software Services

A third party vendor or provider may provide virtual currency processingsoftware services. Software may be installed on terminals or viabackend/cloud servers, or both.

Other Terminology

Herein a “plurality” refers to “one or more” of an element and does notimpose any requirement for more than one element.

A virtual asset is a digital representation of value that can bedigitally traded, or transferred, and can be used for payment orinvestment purposes.

It will be understood that cryptocurrency can refer to any virtual ordigital currency/asset, and vice versa. Examples include, but are notlimited to, Bitcoin, Litecoin, Ethereum, and Bitcoin Cash, and Ripple.

Additionally, funds transfers between individuals or entities often relyon banks or agents as third parties to orchestrate the transfer. Thisrequires the entities to hold accounts with the banks or otherwise dobusiness with the agents.

Virtual currencies and/or cryptocurrencies have been introduced inrecent years. One advantage of the use of virtual currency is that manythird parties may be eliminated. This allows for elimination of somethird party service fees, for example.

Virtual currency does not require a holding bank. Therefore, it ispossible for a software provider to orchestrate the transfer of virtualcurrencies between two other parties via messaging instructions.Therefore, the software provider is not required to handle, possess, oract as the custodian of actual funds.

Various services may be pipelined, and executed in conjunction, in anon-blocking manner, for example.

FIG. 1 is a diagram of a general network environment that can be usedwith terminals or points-of-sale capable of virtual currencytransactions. A terminal, 101 a or 101 b, for example, may be incommunication through a network 102 with a backend service, 103 a or 103b, hosted by a vendor, for example. The terminal may send requests 104through the network 102 to the service 103 a or 103 b. The service maydetermine a response 105 using information and data from a datastore106, for example. The response 105 may be sent to the terminalinstructing certain actions, for example. The backend service may be infurther communication with third party services, 107 a or 107 b, forexample.

The terminals or points-of-sale may be hardware terminals capable of anytransaction. For example, the terminals may be one or a combination of,for example, ATMs, virtual currency ATMs such as Bitcoin ATMs, productterminals capable of vending or dispensing a product. In one example theproduct may be a cannabis or cannabis-containing product, tobacco ortobacco-containing product. In some examples, the products may beregulated in some form. For example, the legal age of purchase of theproduct may be 18 years or greater in a sale location. In one example, aterminal may be a dispensing product that can accept cash or virtualcurrency for the purchase.

FIG. 2A is a diagram of a general network environment that can be usedwith terminals or points-of-sale capable of virtual currencytransactions serviced by a software service vendor. Various terminals(201 a, 201 b, 201 c) may be operated or serviced by an operator 202,for example. Various other terminals (203 a, 203 b, 203 c) may beoperated or serviced by another operator 204, for example. The terminalsmay be in communication through a network with one or more softwareservices provided by one or more vendors 205, for example. The vendormay provide various software services (206 a-206 g). The softwareservices may be hosted together, or separately, for example. Thesoftware services may reference or use data from one or more datastores(207 a-207 d), for example.

FIG. 2B. is a diagram of a network architecture environment that can beused with client nodes, terminals or points-of-sale capable of virtualcurrency transactions serviced by, for example, a software servicevendor.

A client node, terminal, or point-of-sale 230 may access the softwareservices of a vendor through a secure connection such as a VPN 232 a.The terminal/point-of-sale and the VPN may each possess a static IPaddress or a dynamic IP address. The software service assets may besecured, for example behind a firewall or within a VPC 233. Connectionsto some or all of the services or microservices in the VPC may beconfigured to allow or disallow traffic from particular IP addresses orIP address ranges. For example, some services in the VPC may only allowinbound traffic from the IP address of the VPN service 232 a.

The software services may be core software services and may include anynumber of microservices (221 a-221 d). Services and microservices may besegregated on different servers or may be devised in a shared servertenancy architecture. Each service or microservice may be balancedbetween one or more servers (234 a-234 d) via a load balancer 235 andmay access one or more corresponding databases 236. Each service ormicroservice, for example 221 a, may also be in communication with otherservices or microservices, for example 221 b-221 d, that are part of thesystem or VPC. Each service or microservice server may be devised in anelastic infrastructure with access to storage infrastructure such asdatabase infrastructure 236. For example, a service or microserviceserver resource may automatically scale up, or allocated, upon increaseddemand for server resources beyond a certain threshold. Similarly, forexample, a service or microservice server resource may automaticallyscale down, or unallocated, upon decreased demand for server resourcesat a certain threshold.

The servers for services and microservices may be segregated, orallocated, into different availability zones or failover regions.

The software services may prepare and process requests and responses toand from third party services (237 a-237 c).

An administrator 231 may access the software services through a secureconnection such as a VPN 232 b. The administrator machine(s) and the VPNmay each possess a static IP address or a dynamic IP address. Thesoftware service assets may be secured, for example behind a firewall orwithin a VPC 233. Connections to some or all of the services ormicroservices in the VPC may be configured to allow or disallow trafficfrom particular IP addresses or IP address ranges. For example, someservices in the VPC may only allow inbound traffic from the IP addressof the VPN service 232 b.

FIG. 3 is a diagram illustrating an example embodiment of a hardwareterminal point-of-sale used in FIG. 1. More specifically, hardwareterminal may include camera 301, screen 302, barcode reader 303, keypad304, bill acceptor 305, card reader 306, and bill dispenser 307.

FIG. 4 is another diagram illustrating another example embodiment of ahardware terminal point-of-sale used in FIG. 1. More specifically,hardware terminal may include camera 401, screen 402, card reader 403,keypad 404, fingerprint reader 405, bill dispenser 406, card reader 407,and bill acceptor 408.

FIG. 5 is a flowchart showing a general funds transfer process usingvirtual currency. A user/customer visits a terminal and/or point of sale(POS) which received/accepts a deposit 501. The POS may execute steps toconfirm the deposit 502. For example, the POS may count the funds thathave been received and user selections providing specifics,configurations, and/or settings for the transaction. The settings mayinclude, for example, user's phone number, recipient's phone number,amount of time to make the funds available to the recipient forwithdrawal before expiration, etc. The user selections may be stored ina database, for example 503.

Once the deposit is confirmed and completed, a hold period 504 maybegin. The funds are kept in or at the POS and remain in possession ofthe POS operator. During the hold period, it may be the case that nowithdrawal request is made before the expiration of 505, for example, auser-selected expiration as set forth above. Alternatively, a withdrawalrequest may be received before the expiration 506. The withdrawalrequest may be at any terminal and/or point-of-sale that is part of asystem or network of terminals and/or points-of-sale, for example.Therefore, the withdrawal request may be made in any country. Thecountry may be the same or different that the deposit POS country.

A withdrawal request triggers the funds transfer and disbursementprocesses.

The withdrawal terminal and/or POS and location will be identified 507.For example, the country 516 of the withdrawal POS may be different thana country 517 of the deposit POS. Therefore, an exchange rate may beassociated with the withdrawal POS that is different than an exchangerate associated with the deposit POS.

The withdrawal request may be authenticated 513. For example, thewithdrawing user may provide and confirm ownership of a phone numberthat is associated with a deposit. Upon authenticating a withdrawalrequest, available funds may be calculated and disbursed 514.

Calculation of the disbursement funds may include several variables. Forexample, exchange rates at the originating country and resulting countrymay be taken into account. Additionally, service fees of the operatorsand vendors may be taken into account.

A funds transfer process may leverage or utilize a virtual currency.

An exchange rate at an originating country may be calculated along withoperator and/or vendor fees 508. The funds calculated may be exchangedfor virtual currency in a virtual currency wallet 509. The virtualcurrency wallet may be a wallet associated with the deposit POS or theoperator of the deposit POS, for example.

The virtual currency may then be transferred to a virtual currencywallet associated with the target/withdrawal POS or operator of thewithdrawal POS 510. The transfer may occur across a country-line 515,for example.

An exchange rate of the country of the withdrawal POS may be calculatedalong with operator and/or vendor fees 511. The virtual currency in thetarget virtual currency wallet may be exchanged for funds at the targetPOS 512.

Example Embodiments

Various embodiments are described for example purposes. The embodiments,or elements of the embodiments, may be used or practiced in combinationwith one another.

Funds Deposit

A customer may, for example, deposit U.S. dollars at a terminal in theUnited States in exchange for a cryptocurrency such as Bitcoin to bedeposited into the customer's cryptocurrency wallet.

Funds Withdrawal

In another example, a customer may, withdraw U.S. dollars at a terminalin the United States in exchange for a cryptocurrency such as Bitcoin tobe withdrawn from the customer's cryptocurrency wallet.

Domestic Funds Transfer

In another example, a customer may wish to deposit U.S. dollars at aterminal in the United States to send funds to another customer atanother terminal in another location in the United States forwithdrawal.

A third party or provider may facilitate the transfer. The third partymay be a software service, for example.

In one example, the third party may instruct to accept funds fundsreceived at the deposit terminal. The third party or provider may theninstruct the transfer of cryptocurrency from a virtual currency walletassociated with the deposit terminal to a virtual currency walletassociated a withdrawal terminal. The third party or provider may theninstruct the remittance of funds at the withdrawal terminal.

International Funds Transfer

In another example, a customer may wish to deposit U.S. dollars at aterminal in the United States to send funds to another customer inanother location outside of the United States for withdrawal.

A third party or provider may facilitate the transfer. The third partymay be a software service, for example.

In one example, the third party may instruct to accept funds fundsreceived at the deposit terminal in, for example, the United States,where the funds funds are U.S. dollars. The third party or provider maythen instruct the transfer of an amount of cryptocurrency based on thelocal exchange rate from a virtual currency wallet associated with thedeposit terminal to a virtual currency wallet associated a withdrawalterminal where the withdrawal terminal in another country, for example,Mexico. The third party or provider may then instruct the remittance offunds at the withdrawal terminal based on the local exchange rate.

A customer may visit a terminal in one country. One embodiment of thedeposit process is described further below.

FIG. 6 is a flowchart showing a detailed view of the deposit process.

During processing of a deposit at a POS, a customer/user may beauthenticated 601. For example, a user may provide/scan an ID documentsuch as a driver's license, provide and verify a phone number/PIN, etc.A phone may be verified, for example, by a PIN sent to the phone numberby SMS after the phone number is entered at a terminal, for example. Theuser may be prompted to enter/verify the phone number by entering thereceived PIN.

Other data or metadata may be gathered and used forverification/authentication 602, such as biometric verification. Forexample, a camera at a terminal or POS may provide image or video dataof the user's face. This may trigger a facial recognition process, aKYC/AML (Know Your Customer/Anti-Money Laundering) process, and/or atrust/risk analysis process 607. These processes may be carried out inconjunction in a non-blocking manner, or sequentially. These processesmay be executed at the POS, at a proxy, and/or as a backend process.These processes may be provided by the vendor, operator, and/or a thirdparty, and in any combination thereof.

The customer/user may make various selections 603 associated with adeposit providing specifics, configurations, and/or settings for thetransaction. The settings may include, for example, user's phone number,recipient's phone number, creation of a redemption code, amount of timeto make the funds available to the recipient for withdrawal beforeexpiration, etc.

The customer/user may then deposit funds at the terminal or POS 604. ThePOS may execute steps to confirm the deposit is complete 605. Forexample, the POS may count the funds that have been received and userselections providing specifics, configurations, and/or settings for thetransaction.

After the deposit is completed, the POS may provide a receipt and/ornotification 606. Once the deposit is confirmed and completed, the fundsare kept in or at the POS and remain in possession of the POS operator.After the expiration of the holding period, the funds may begin to incurholding fees, for example.

FIG. 7 is a flowchart showing a detailed view of the withdrawal process.

A withdrawal request may be received during a hold period. Thewithdrawal request may be at any terminal and/or point-of-sale that ispart of a system or network of terminals and/or points-of-sale, forexample. Therefore, the withdrawal request may be made in any country.The country may be the same or different that the deposit POS country.

In one embodiment, the customer may deposit virtual currency to thevendor and the funds are converted to funds during the holding period toavoid or minimize realization of exchange rate fluctuations orvolatility.

In another embodiment, the customer may deposit virtual currency to thevendor and the funds are not converted to funds during the holdingperiod.

A withdrawal request triggers the funds transfer and disbursementprocesses.

The withdrawal terminal and/or POS and location will be identified asset forth above. The withdrawal request may be authenticated as setforth above. For example, the withdrawing user may provide and confirmownership of a phone number that is associated with a deposit. Thecustomer may be identified 701 and a withdrawal request may be sent to avendor 702. The request may include specifications associated with thecustomer, etc. 703.

Other data or metadata may be gathered and used forverification/authentication, such as biometric verification. Forexample, a camera at a terminal or POS may provide image or video dataof the withdrawing user's face. This may trigger a facial recognitionprocess, a KYC/AML (Know Your Customer/Anti-Money Laundering) process,and/or a trust/risk analysis process. These processes may be carried outin conjunction in a non-blocking manner, or sequentially. Theseprocesses may be executed at the POS, at a proxy, and/or as a backendprocess. These processes may be provided by the vendor, operator, and/ora third party, and in any combination thereof.

If the specifications and withdrawal are not cleared during a decisionprocess by the vendor service 704, for example, the withdrawal may bedenied 710.

If the specifications and withdrawal are cleared during a decisionprocess by the vendor service 704, for example, the withdrawal may bepermitted, and a virtual currency exchange process (709, 711) may beinitiated, and a funds disbursement process (705, 706, 707, 708) may beinitiated.

Upon authentication or permission of a withdrawal request, funds may becalculated and disbursed. A withdrawal limit may be determined 705 basedon factors such as the amount deposited, operator and vendor fees 706,exchange rate parameters 706, etc. A response from the vendor servicemay be sent to the operator 707 including, for example, the calculationof limits of funds allowed for withdrawal. In response, the terminal orPOS may permit a withdrawal 708.

Trust/Risk Analysis Service

A trust and/or risk analysis may be carried out, optionally, forexample, for the authentication/verification of a depositing orwithdrawing user. The analysis may be carried out in parallel with thecustomer's deposit, or may be carried out before allowing a particularstep of the customer's deposit to be completed, for example. Forexample, the analysis may be required to be completed before acceptingfunds or a deposit from the user. Alternatively, for example, funds or adeposit may be accepted while the analysis is performed.

In another example, a trust and/or risk analysis may be carried out inparallel with a customer's withdrawal, or may be carried out beforeallowing a particular step of the customer's withdrawal to be completed,for example. For example, the analysis may be required to be completedbefore dispensing funds or funds to the user. Alternatively, forexample, funds or funds may be dispensed while the analysis isperformed.

In one example, the data and metadata for trust/risk analysis processingmay be delivered to a third party service provider, or vendor. The thirdparty service, for example, may be a software service of a vendor, asset forth above. The software service may be hosted at a vendor-ownedlocation, a third party location, or a proxy location, for example. Thedata and/or metadata may be sent to a processing queue of the softwareservice. For example, the queue may be processed in a first-in-first-out(FIFO) or last-in-first-out (LIFO) order. The queue may collect severalprocesses to be carried out. The processes may, for example, be similartrust/risk analysis processes from various POS locations, or differentprocesses.

The service may be hosted on elastic server architecture, in oneexample, as set forth above. In another example, the service may behosted using serverless architecture, as set forth above.

Various actions may be taken in response to the outcome of the analysis.

One advantage of the use of cryptocurrency is the ability to eliminatethird parties or additional parties. However, one disadvantageassociated with this is that cryptocurrency transactions by bad actorsare more easily enabled. It is useful and necessary then to establishwhether a user is trustworthy.

A trust score may be computed, established, stored, and/or updated for auser. The trust score may be used to increase or decrease, for example,user capabilities or privileges at a point of sale node or terminal. Forexample, in one embodiment, a trust score exceeding a threshold scoremay allow or unlocks for the user a higher transaction limit privilege.

In one embodiment, when a trust score does not exceed a certain minimumthreshold, additional actions or inputs may be required of a user at apoint of sale node or terminal. For example, a user may be required orrequested to provide additional identification, scan an ATM card, orprovide a biometric input if a trust score does not exceed a certainminimum threshold. It will be recognized that any input or requirementthat can affect a trust score may be required or requested.

In one embodiment, when a trust score does not exceed a certain minimumthreshold, a user transaction or other request may be denied.

A trust score may incorporate, or take into account, any number offactors, wherein each factor may be assigned a weight. A weightedfactor, for example the product of a factor and a respective weight, mayprovide a trust factor. A trust score may be a sum of various trustfactors. It will be understood that any of a trust score, factor, orweight, may be positive, zero, or negative.

One factor may be a facial verification or recognition factor.

In one embodiment, a user's facial image data or video data, forexample, may be gathered at a point of sale node or terminal, or anyother computing device, such as a user's mobile device. One or moreparameters of the image or video data may be stored. The entire image orvideo data may be stored.

In one embodiment, facial recognition may be performed based on a videosequence or one or more video frames of a user's face gathered at a nodeor terminal, or any other computing device, such as a user's mobiledevice, for example. In one embodiment, facial recognition may beperformed based on an image of a user's face gathered at a node orterminal, or any other computing device, such as a user's mobile device,for example.

The facial data may be processed on the client side at the node orterminal, at a proxy, on the server side, or any combination of suchlocations thereof, wherein various steps or portions of processing maybe performed at each location.

Facial Verification or Recognition

It will be understood that any facial recognition algorithm, orcombinations or hybrids thereof, might be used.

In one embodiment, a facial verification method may be used to compare auser's face with one or more datasets. A dataset may be, for example, atraining dataset, a model dataset, a stored dataset of previous or knownusers, or a stored criminal or blacklist dataset.

One or more datasets may be selected as training datasets and/or modelsand one or more cost functions may be defined. In one example, a costfunction may be a Kullback-Leibler divergence, or difference, from aselected dataset or model. An optimization problem may be defined.

One factor may be a user geolocation factor.

A geolocation factor may be gathered as associated with a user. In oneexample, a user may share a mobile device geolocation with a service. Arequest for geolocation may be sent to a user mobile device, forexample.

In one embodiment, a user geolocation may be compared with a point ofsale location. A factor may be determined based on the proximity of thetwo geolocations.

One factor may be a point of sale geolocation factor.

A geolocation factor may be gathered as associated with a point of sale.In one example, an IP address that is connected with, or used by, apoint of sale may be associated with a geolocation.

In one embodiment, a point of sale geolocation may be compared with auser geolocation. A factor may be determined based on the proximity ofthe two geolocations.

One factor may be an ATM card verification factor.

An ATM card may be issued to a user of a cryptocurrency terminal. Thecard may include a chip, barcode, account number, and/or magnetic strip.The ATM card may be read by a cryptocurrency terminal for verification.A factor may be associated with a ATM-verified user.

One factor may be an age of account factor.

An account age may be determined. For example, a creation may bedetermined. A factor may be associated with the account age.

One factor may be a previous incident factor.

A list of incidents may be associated with an account and stored. Anincident may be a suspicious event that has been flagged. For example,an incident may include exceeding a threshold number of failed loginswithin a certain window of time, of time period of a predefined length.

A factor may be associated with each incident. Alternatively, a factormay be associated with a threshold number of incidents.

One factor may be a metadata factor.

One factor may be a PIN verification factor.

One factor may be a mobile device PIN verification factor.

One factor may be biometric factor such as a fingerprint, finger scan,or palm scan.

One factor may be a distance from last transaction probability factor.

One factor may be a credit card verification factor.

One factor may be an ID card verification factor.

One factor may be a QR code verification factor.

One factor may be a mobile device bluetooth verification factor.

One factor may be a security pattern verification factor.

One factor may be a geographic criminal activity factor.

One factor may be a transaction anomaly factor.

Transaction data for a user or group of users may produce a probabilitydistribution. For example, transaction amounts may follow a normal, orGaussian, distribution for a particular location, or across manylocations, wherein a particular mean transaction amount is determined.

Thus, a transaction amount may deviate from a mean by some portion ormultiple of a standard deviation. Larger deviations may be moreanomalous then.

In one embodiment, a larger standard deviation may be associated with aparticular factor, which may be a negative factor. Addition of anegative factor in a trust score may penalize the trust score.

One factor may be a transaction location anomaly factor.

Transaction location data for a user or group of users may produce aprobability distribution. For example, transaction locations may followa normal, or Gaussian, distribution for a particular location, or acrossmany locations, wherein a particular mean transaction location isdetermined.

Thus, a transaction location may deviate from a mean by some portion ormultiple of a standard deviation. Larger deviations may be moreanomalous then.

In one embodiment, a larger standard deviation may be associated with aparticular factor, which may be a negative factor. Addition of anegative factor in a trust score may penalize the trust score.

Calculation of Trust Score or Risk Score

Thus, a trust score may be calculated by including one or more weightedfactors. In one example, a trust score (TS) based on a factor (f₁) at aweight (w₁), and a factor (f₂) at a weight (w₂):

TS=w ₁ f ₁ +w ₂ f ₂

Thus, for many (x) factors, a trust score may be calculated:

TS=w ₁ f ₁ +w ₂ f ₂ . . . w _(x) f _(x)

or

TS=Σ₁ ^(x) w _(x) f _(x)

Trust Score Distribution

Trust scores amongst a certain set, subset, portion, or group of usersmay form a probability distribution. For example, trust scores mayfollow a normal, or Gaussian, distribution for a group of users, whereina particular mean trust score is determined.

Thus, a user's computed or determined trust score may deviate from amean by some portion or multiple of a standard deviation. Largerdeviations may be more anomalous then.

In one embodiment, a larger standard deviation may be associated with aless trustworthy user. A threshold standard deviation or portion of astandard deviation may be defined. A comparison or relationship betweena user's trust score and a threshold standard deviation from a meantrust score may be established. User privileges at a point of sale, orin or for a user account, may be determined according to whether theuser's trust score exceeds the threshold.

Updating for Trust or Risk

It will be understood that information or metadata about users mayincrease over time. For example, a new user may complete acryptocurrency transaction with certain characteristics such aslocation, time, transaction amount, etc., and, over time, that user willcomplete additional transactions with their own characteristics—somecharacteristics may be the same, or similar, to those characteristics ofthe earlier transactions. These transaction data or characteristics maybe stored.

Thus, the information or metadata surrounding the user increases overtime as additional data surrounding transactions are aggregated.

A running, or aggregate, trust score may be associated with a user.Thus, a prior, or posterior, trust score may exist for a user prior to atransaction. After a transaction the prior trust score may be updated.

FIG. 8 is a flowchart showing a general view of a risk analysis process.

A user may initiate a transaction request 801. Upon doing so, a user mayprovide, or be prompted to provide credentials for a virtual currencywallet 802. For example, a user may enter a wallet address manually, orscan a barcode or other address representation at a point of sale. Thepoint of sale may be a terminal, for example. After the user providesthe address, the terminal may wait for a response 803 from a vendor orthird party service. The service may be a risk analysis service, forexample, that provides a risk score for a given address. After the riskscore is received 804, the terminal may allow the transaction to proceedor move forward 805.

After the user enters a wallet address, the address and/or user data maybe forwarded a vendor or third party service 806. As set forth above,the service may be a risk analysis service, for example, that provides arisk score for a given address. The service may perform a risk analysisand calculated a risk score 808. The risk score may be provided, inresponse, back to the point of sale.

FIG. 9A is a flowchart showing a customer funds deposit process.

A customer may visit a point of sale 901, which may be, for example, ahardware terminal such as an automated teller machine capable of one orboth of cash and virtual currency transactions. The point of sale maydisplay selection options such as “Deposit” and “Withdrawal”, currentprices of various virtual currencies and/or customer selections such astransaction ranges 902. For example, ranges for a cash to virtualcurrency (such as Bitcoin, for example) deposit transactions may bedisplayed. In one example, a range of $0-$500 may be displayed, whereina user can opt to deposit up to $500 cash into a virtual currencywallet. The customer may select a range 903. The customer may beprompted to enter a phone number, for example his/her mobile phonenumber 904.

A determination may be made as to whether the phone number entered isassociated with an existing account or known user 905. For example, adatabase may be queried for the entered phone number. If no account isfound, a user may be prompted to create an account 906. If an account isfound, an SMS verification code may be sent to the entered phone number907. In another embodiment, the SMS code may be sent before the databaseis queried. After the user entered the SMS code, if the entered codematches the code that was sent, the transaction may be allowed tocontinue. If the entered code does not match, the transaction may bedenied, for example. The user may be allowed to request a new code. Therequests may be limited, for example, to 5 attempts before the accountis locked.

Once an account is identified, a KYC/AML (“know-your-customer” or“anti-money laundering”) verification analysis may be performed 908. Inone example, a user account may include any combination ofidentification document data such as an associated name, date of birth,address, social security number, driver's license number, passportnumber, and/or any other data from an identification document associatedwith the account.

The data may be forwarded, by a core service provider or vendor, to aservice provider. The service provider may be a software serviceprovider that may be a third party software service provider.

For example, data may be forwarded from the core service provider orvendor to a third party software service provider in the form of an HTTPrequest to an API endpoint, for example, a URL, of the third partysoftware service provider, and responses may be returned. HTTP methodsused may include, for example GET, HEAD, POST, PUT, PATCH, DELETE,CONNECT, OPTIONS and TRACE. The HTTP requests and/or responses mayinclude application/json content type, wherein data may be JSON encodeddata. Additionally HTTP status codes may be used to indicate success andfailure.

An HTTP request to an API endpoint may require authentication. Forexample, the API may conform to a Representational State Transfer (REST)style. For example, an API key, token, access key, and/or secret key maybe provided by the third party software service to the core serviceprovider or vendor. Keys may be included in HTTP headers, for example,for every HTTP request. Keys may be in the form of a string, such as abase64 encoded string, for example. Similarly, a timestamp may beincluded in HTTP headers for HTTP requests to an API endpoint. AHash-based Message Authentication Code may be computed using a hashfunction, for example, a SHA256 hash function.

An HTTP request to an API endpoint may include a payload. The requestand payload may be formatted as any HTTP request. For example, a requestmay be made using various programming languages or combinations ofprogramming languages, such as CURL, Ruby, Python, Node, PHP, Java,and/or JSON.

The payload may include any combination of identification document datasuch as an associated name, date of birth, address, social securitynumber, driver's license number, passport number, and/or any other datafrom an identification document associated with the account. The payloadmay be formatted in HTML, XML, JSON, or another format.

The service provider may return, to the core service provider or vendor,a result that may include one or more flags, states, parameters,metrics, or scores associated with the account. For example, 0, 1, or 2may be returned to indicate no match, partial match, or match. Theresult may be stored in association with the account, and the dateand/or time of the request and/or retrieval of the result may be alsostored. The result may include a payload formatted in HTML, XML, JSON,or another format.

As an example a JSON response payload can include elements such aswhether an ID element, such as address, name, and/or date of birth areverified, partially verified, or not verified, and/or elements such asassociated risk scores calculated for each element, or a combination ofelements:

For example, such a payload could include:

  {  “address”: “1”,  “address_risk”: “high”,  “identification”: “0”, “date_of_birth”: “2” }

In one example, a request for a verification may be made to a thirdparty service provider, wherein a verification or risk score is based onthe specifics of fund contributors to a queried address. A risk scoremay be, for example, a numeral ranging from 0 to 10, wherein 0 or 1correspond to little, low, or no risk, and 9 or 10 correspond to highrisk. In another example, a risk score may be a floating point valuesuch as 0.001 or 4.58.

In another example, a request for a risk score may be made to a thirdparty service provider, wherein the risk score is based on the specificsof recipients of funds from a queried address.

In another embodiment, it may be determined, by a core service provideror vendor, that a risk analysis has been performed on the account withina certain timeframe. For example, it may be determined that a riskanalysis has been performed within the last week. Based on such adetermination, the request to the service provider may be skipped. Forexample, if a risk analysis for the account was requested within theprevious week and the associated account was cleared, trusted, and/orotherwise determined to be low risk, based on a query of theaforementioned stored results and/or date/time, then a risk analysis maybe skipped.

After the phone number is verified, the customer may be allowed toselect a virtual currency from a set of virtual currency 909. Forexample, the customer may select “Bitcoin” from a set comprising“Bitcoin”, “Litecoin”, “Ethereum”, etc.

After selection, a virtual currency wallet address may be gathered 910.For example, a user may scan a QR code for a virtual currency walletshown on a mobile device. In other examples, a user may manually enter avirtual currency wallet address, or a virtual currency wallet addressmay be created.

The virtual currency wallet address may be used to perform a riskanalysis 911.

A KYC/AML (“know-your-customer” or “anti-money laundering”) verificationanalysis may also be performed 908. In one example, a user account mayinclude any combination of identification document data such as anassociated name, date of birth, address, social security number,driver's license number, passport number, and/or any other data from anidentification document associated with the account.

The data may be forwarded, by a core service provider or vendor, to aservice provider. The service provider may be a software serviceprovider that may be a third party software service provider.

For example, data may be forwarded from the core service provider orvendor to a third party software service provider in the form of an HTTPrequest to an API endpoint, for example, a URL, of the third partysoftware service provider, and responses may be returned. HTTP methodsused may include, for example GET, HEAD, POST, PUT, PATCH, DELETE,CONNECT, OPTIONS and TRACE. The HTTP requests and/or responses mayinclude application/json content type, wherein data may be JSON encodeddata. Additionally HTTP status codes may be used to indicate success andfailure.

An HTTP request to an API endpoint may require authentication. Forexample, the API may conform to a Representational State Transfer (REST)style. For example, an API key, token, access key, and/or secret key maybe provided by the third party software service to the core serviceprovider or vendor. Keys may be included in HTTP headers, for example,for every HTTP request. Keys may be in the form of a string, such as abase64 encoded string, for example. Similarly, a timestamp may beincluded in HTTP headers for HTTP requests to an API endpoint. AHash-based Message Authentication Code may be computed using a hashfunction, for example, a SHA256 hash function.

An HTTP request to an API endpoint may include a payload. The requestand payload may be formatted as any HTTP request. For example, a requestmay be made using various programming languages or combinations ofprogramming languages, such as CURL, Ruby, Python, Node, PHP, Java,and/or JSON.

The payload may include elements such as a type of analysis performed,an asset type, an address or transaction hash, a type of analysis, and acustomer reference or ID.

As an example a JSON request payload can include:

  {  “type”: “transaction”,  “asset”: “LTC”,  “hash”:“dvf35gh...ebrvryh6”,  “address” :“khbKJB98y...jbaAYGAB83”,  “type”:“source”,  “customer_id”: “3234” }

The service provider may return, to the core service provider or vendor,a result that may include one or more flags, states, parameters,metrics, or scores associated with the account. The result may be storedin association with the account, and the date and/or time of the requestand/or retrieval of the result may be also stored.

As an example JSON response payload can include:

  {  “id”: 4542,  “date”: “2018-05-04”,  “risk_score”: “10.54” }

In one example, a request for a verification may be made to a thirdparty service provider, wherein a verification or risk score is based onthe specifics of fund contributors to a queried address. A risk scoremay be, for example, a numeral ranging from 0 to 10, wherein 0 or 1correspond to little, low, or no risk, and 9 or 10 correspond to highrisk. In another example, a risk score may be a floating point valuesuch as 0.001 or 4.58.

In another example, a request for a risk score may be made to a thirdparty service provider, wherein the risk score is based on the specificsof recipients of funds from a queried address.

FIG. 9B is a flowchart showing a customer funds withdrawal process.

A customer may visit a point of sale 921, which may be, for example, ahardware terminal such as an automated teller machine capable of one orboth of cash and virtual currency transactions. The point of sale maydisplay selection options such as “Deposit” and “Withdrawal”, currentprices of various virtual currencies and/or customer selections such astransaction ranges 922.

The customer may select “Withdrawal” 923. The customer may be promptedto enter a phone number, for example his/her mobile phone number 924.

A determination may be made as to whether the phone number entered isassociated with an existing account or known user 925. For example, adatabase may be queried for the entered phone number. If no account isfound, a user may be prompted to create an account 926. If an account isfound, an SMS verification code may be sent to the entered phone number927. In another embodiment, the SMS code may be sent before the databaseis queried. After the user entered the SMS code, if the entered codematches the code that was sent, the transaction may be allowed tocontinue. If the entered code does not match, the transaction may bedenied, for example. The user may be allowed to request a new code. Therequests may be limited, for example, to 5 attempts before the accountis locked.

Once an account is identified, a KYC/AML (“know-your-customer” or“anti-money laundering”) verification analysis may be performed 928. Inone example, a user account may include any combination ofidentification document data such as an associated name, date of birth,address, social security number, driver's license number, passportnumber, and/or any other data from an identification document associatedwith the account.

The data may be forwarded, by a core service provider or vendor, to aservice provider. The service provider may be a software serviceprovider that may be a third party software service provider.

For example, data may be forwarded from the core service provider orvendor to a third party software service provider in the form of an HTTPrequest to an API endpoint, for example, a URL, of the third partysoftware service provider, and responses may be returned. HTTP methodsused may include, for example GET, HEAD, POST, PUT, PATCH, DELETE,CONNECT, OPTIONS and TRACE. The HTTP requests and/or responses mayinclude application/json content type, wherein data may be JSON encodeddata. Additionally HTTP status codes may be used to indicate success andfailure.

An HTTP request to an API endpoint may require authentication. Forexample, the API may conform to a Representational State Transfer (REST)style. For example, an API key, token, access key, and/or secret key maybe provided by the third party software service to the core serviceprovider or vendor. Keys may be included in HTTP headers, for example,for every HTTP request. Keys may be in the form of a string, such as abase64 encoded string, for example. Similarly, a timestamp may beincluded in HTTP headers for HTTP requests to an API endpoint. AHash-based Message Authentication Code may be computed using a hashfunction, for example, a SHA256 hash function.

An HTTP request to an API endpoint may include a payload. The requestand payload may be formatted as any HTTP request. For example, a requestmay be made using various programming languages or combinations ofprogramming languages, such as CURL, Ruby, Python, Node, PHP, Java,and/or JSON.

The payload may include any combination of identification document datasuch as an associated name, date of birth, address, social securitynumber, driver's license number, passport number, and/or any other datafrom an identification document associated with the account.

The service provider may return, to the core service provider or vendor,a result that may include one or more flags, states, parameters,metrics, or scores associated with the account. For example, 0, 1, or 2may be returned to indicate no match, partial match, or match. Theresult may be stored in association with the account, and the dateand/or time of the request and/or retrieval of the result may be alsostored. The result may include a payload formatted in HTML, XML, JSON,or another format.

For example, such a payload could include:

  {  “address”: “1”,  “address_risk”: “high”,  “identification”: “0”, “date_of_birth”: “2” }

In one example, a request for a verification may be made to a thirdparty service provider, wherein a verification or risk score is based onthe specifics of fund contributors to a queried address. A risk scoremay be, for example, a numeral ranging from 0 to 10, wherein 0 or 1correspond to little, low, or no risk, and 9 or 10 correspond to highrisk. In another example, a risk score may be a floating point valuesuch as 0.001 or 4.58.

In another example, a request for a risk score may be made to a thirdparty service provider, wherein the risk score is based on the specificsof recipients of funds from a queried address.

In another embodiment, it may be determined, by a core service provideror vendor, that a risk analysis has been performed on the account withina certain timeframe. For example, it may be determined that a riskanalysis has been performed within the last week. Based on such adetermination, the request to the service provider may be skipped. Forexample, if a risk analysis for the account was requested within theprevious week and the associated account was cleared, trusted, and/orotherwise determined to be low risk, based on a query of theaforementioned stored results and/or date/time, then a risk analysis maybe skipped.

After the phone number is verified, the customer may be allowed toselect a virtual currency from a set of virtual currency 929. Forexample, the customer may select “Bitcoin” from a set comprising“Bitcoin”, “Litecoin”, “Ethereum”, etc.

For example, ranges for a cash to virtual currency (such as Bitcoin, forexample) withdrawal transactions may be displayed. The customer mayselect a range 930. In one example, a range of $0-$50 may be displayed,wherein a user can opt to withdraw up to $50 cash from a virtualcurrency wallet.

After selection, a virtual currency wallet address may be displayed, forexample as a QR code 931. The wallet address may represent a walletaddress associated with the operator of the point of sale. A user mayscan the QR code for the virtual currency wallet shown 932 to send fundsfrom his/her virtual currency wallet. Once the funds have been sent tothe operator or point of sale virtual currency wallet, correspondingcash funds may be dispensed 933. The cash funds may calculated be lessany fees, for example.

The virtual currency wallet transaction or sender address may be used toperform a KYC/AML (“know-your-customer” or “anti-money laundering”) riskanalysis 934.

The data may be forwarded, by a core service provider or vendor, to aservice provider. The service provider may be a software serviceprovider that may be a third party software service provider.

For example, data may be forwarded from the core service provider orvendor to a third party software service provider in the form of an HTTPrequest to an API endpoint, for example, a URL, of the third partysoftware service provider, and responses may be returned. HTTP methodsused may include, for example GET, HEAD, POST, PUT, PATCH, DELETE,CONNECT, OPTIONS and TRACE. The HTTP requests and/or responses mayinclude application/json content type, wherein data may be JSON encodeddata. Additionally HTTP status codes may be used to indicate success andfailure.

An HTTP request to an API endpoint may require authentication. Forexample, the API may conform to a Representational State Transfer (REST)style. For example, an API key, token, access key, and/or secret key maybe provided by the third party software service to the core serviceprovider or vendor. Keys may be included in HTTP headers, for example,for every HTTP request. Keys may be in the form of a string, such as abase64 encoded string, for example. Similarly, a timestamp may beincluded in HTTP headers for HTTP requests to an API endpoint. AHash-based Message Authentication Code may be computed using a hashfunction, for example, a SHA256 hash function.

An HTTP request to an API endpoint may include a payload. The requestand payload may be formatted as any HTTP request. For example, a requestmay be made using various programming languages or combinations ofprogramming languages, such as CURL, Ruby, Python, Node, PHP, Java,and/or JSON.

The payload may include elements such as a type of analysis performed,an asset type, an address or transaction hash, a type of analysis, and acustomer reference or ID.

As an example a JSON request payload can include:

  {  “type”: “transaction”,  “asset”: “LTC”,  “hash”:“dvf35gh...ebrvryh6”,  “address”: “khbKJB98y...jbaAYGAB83”,  “type”:“source”,  “customer_id”: “3234” }

The service provider may return, to the core service provider or vendor,a result that may include one or more flags, states, parameters,metrics, or scores associated with the account. The result may be storedin association with the account, and the date and/or time of the requestand/or retrieval of the result may be also stored.

As an example JSON response payload can include:

  {  “id”: 4542,  “date”: “2018-05-04”,  “risk_score”: “10.54” }

In one example, a request for a verification may be made to a thirdparty service provider, wherein a verification or risk score is based onthe specifics of fund contributors to a queried address. A risk scoremay be, for example, a numeral ranging from 0 to 10, wherein 0 or 1correspond to little, low, or no risk, and 9 or 10 correspond to highrisk. In another example, a risk score may be a floating point valuesuch as 0.001 or 4.58.

In another example, a request for a risk score may be made to a thirdparty service provider, wherein the risk score is based on the specificsof recipients of funds from a queried address.

The virtual currency wallet address and transaction details may bestored by a software service provider. In one example, this riskanalysis may be performed after the withdrawal. In one example, if theaccount is deemed high risk, the account may be flagged or placed in a“hold” or “pending approval” state, or similar.

Customer Transaction/Request Interview

In one embodiment, a progessive, interactive interview is presented tothe customer via a terminal or point of sale display, using, forexample, a series of one or more graphical user interfaces (GUIs) in abrowser element.

During the presentation of the GUIs in the interview, data may be storedat the terminal or point of sale, at least temporarily reflectingcustomer selections. In one example, cookies may be stored inassociation with the customer/transaction in a user session, using, forexample, JavaScript.

The cookies may then be utilized to prepare or produce a payload fortransmission, for example, a JSON encoded data element. In anotherembodiment, such a payload/JSON encoded data element may be preparedwithout the use of cookies.

The JSON encoded data element may comprise multiple elements reflectingthe customer selections and/or request along with information such asidentifying information of the terminal or point of sale at which therequest is being prepared and timestamps. Additionally, API keys and/orAPI secret keys may be included with the payload data element.

In some embodiments, as the customer makes the selections a storedmachine state is updated. This can be maintained in various networklocations, for example, near the edge or at a central server location.Caches at the client terminal or point of sale, or in the network pathor at the central server may be used to store a machine state, forexample.

There may be a time period set at which the state or session times out.For example, after 1 minute of inactivity or lack of state changes, thesession or state is cleared, logged off and/or ended, etc.

In an example embodiment, a customer approaches a terminal or point ofsale. The customer may select a transaction type, for example, “BuyVirtual Currency,” and selects type of virtual currency, for example,“Bitcoin,” in a GUI display of the terminal or point of sale.

The machine state stored in a database, datastore, or internet of thingsmodel, for example. The machine state may be incrementally updated witheach secure request associated with a user selection, to build a stringor payload, for example. Each request may be filtered at the serviceprovider side, where security measures may be in place. For example,code injection requests may be logged along with the origin. Further,the origin may be blocked from making further requests until the requestis reviewed and cleared.

This reduces what may be stored locally and allows machine state to bemaintained, even when, for example, connection is lost.

The request specifications may be aggregated into a complete payload tomake a complete request. On submission, for example, via a command fromthe user to make or submit the request, the complete aggregate payloadmay be used to deliver a complete request to the vendor or softwareservice provider.

FIG. 9C is a flowchart showing a customer funds deposit and virtualcurrency purchase process connected with a virtual currency machinestate.

An example sequence is provided. It will be understood that the givensteps are optional and/or may be rearranged. A user or customer mayvisit a terminal which may be a virtual currency terminal, for example.

The customer may be presented with a series of user interfaces in aninterview to allow for ascertaining the customer's specifications for atransaction request. The customer interview corresponds to 955-959, forexample. A machine state corresponds to 954 a-954 d, for example. Themachine state may be stored in any location between the client and thecloud service. For example, the machine state may be stored or cachedlocally at the terminal, near the edge or fog layer, or at a centralserver.

During the customer interview, queries/requests (952 a-952 e) andupdates (953 a-953 e) may be made between the terminal and a softwareservice. The queries and updates may handle and/or update a machinestate (954 a-954 d) associated with the terminal. It will be understoodthat data elements 954 a-954 d could include other parameters.Additionally, such data elements could include, for example, API keysand/or secret keys.

In one embodiment, a customer may select to purchase a virtual currency955 in exchange for cash via a cash deposit at the terminal. An initialstate for the terminal may be empty or null, for example. The initialstate may be requested 952 a before or during the customer's initialselection 955, for example and communicated from a software serviceprovider via a secure session via a VPN. The query may be communicatedfrom the software service provider as an encrypted payload that isdecrypted at the terminal. For example, a JSON data element may becreated or prepared by the software service provider. The data elementmay be encrypted and delivered to the terminal.

After the customer's selection to buy virtual currency, an update forthe terminal machine state may be communicated to a software serviceprovider via a secure session via a VPN. The update may include thedelta or changes to the initial or current machine state. The update maybe communicated to the software service provider as an encryptedpayload. For example, a JSON data element may be created or prepared atthe terminal. The data element may be encrypted and delivered to thesoftware service provider 953 a. The software service provider maydecrypt the payload to reveal a decrypted payload 954 a and update themachine state for the terminal, for example by updating a database ordatastore.

The current machine state may be queried or requested 952 b before orduring the customer's next selection 956, for example and communicatedfrom a software service provider via a secure session via a VPN. Thequery may be communicated from the software service provider as anencrypted payload that is decrypted at the terminal. For example, a JSONdata element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may select a virtual currency 956 to buy in exchange forcash via a cash deposit at the terminal.

After the customer's selection to buy “Bitcoin” 956, for example, anupdate for the terminal machine state may be communicated to a softwareservice provider via a secure session via a VPN. The update may includethe delta or changes to the initial or current machine state. The updatemay be communicated to the software service provider as an encryptedpayload 953 b. For example, a JSON data element may be created orprepared at the terminal. The data element may be encrypted anddelivered to the software service provider. The software serviceprovider may decrypt the payload 953 b and update the machine state forthe terminal, for example by updating a database or datastore.

The current machine state may be queried or requested 952 c before orduring the customer's next selection 957, for example, and communicatedfrom a software service provider via a secure session via a VPN. Thequery may be communicated from the software service provider as anencrypted payload that is decrypted at the terminal. For example, a JSONdata element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may select a virtual currency amount 957 to buy 1 Bitcoin(BTC).

After the customer's selection to buy “1 BTC,” for example, an updatefor the terminal machine state may be communicated to a software serviceprovider via a secure session via a VPN. The update may include thedelta or changes to the initial or current machine state. The update maybe communicated to the software service provider as an encrypted payload953 c. For example, a JSON data element may be created or prepared atthe terminal. The data element may be encrypted and delivered to thesoftware service provider. The software service provider may decrypt thepayload to reveal a decrypted payload 954 c and update the machine statefor the terminal, for example by updating a database or datastore.

The current machine state may be queried or requested 952 d before orduring the customer's next selection or action 958, for example, andcommunicated from a software service provider via a secure session via aVPN. The query may be communicated from the software service provider asan encrypted payload that is decrypted at the terminal. For example, aJSON data element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may enter a virtual currency wallet address 958.

After the customer's entry, for example, an update for the terminalmachine state may be communicated to a software service provider via asecure session via a VPN. The update may include the delta or changes tothe initial or current machine state. The update may be communicated tothe software service provider as an encrypted payload 953 d. Forexample, a JSON data element may be created or prepared at the terminal.The data element may be encrypted and delivered to the software serviceprovider. The software service provider may decrypt the payload toreveal a decrypted payload 954 d and update the machine state for theterminal, for example by updating a database or datastore.

The current machine state may be queried or requested 952 e before orduring the customer's next selection or action 959, for example, andcommunicated from a software service provider via a secure session via aVPN. The query may be communicated from the software service provider asan encrypted payload that is decrypted at the terminal. For example, aJSON data element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may deposit cash 959.

After the customer's action, for example, an update for the terminalmachine state may be communicated to a software service provider via asecure session via a VPN. The update may include the delta or changes tothe initial or current machine state. The update may be communicated tothe software service provider as an encrypted payload 953 e. Forexample, a JSON data element may be created or prepared at the terminal.The data element may be encrypted and delivered to the software serviceprovider. The software service provider may decrypt the payload toreveal a decrypted payload and update the machine state for theterminal, for example by updating a database or datastore.

FIG. 9D is a flowchart showing a customer funds withdrawal and virtualcurrency sale process connected with a virtual currency machine state.

An example sequence is provided. It will be understood that the givensteps are optional and/or may be rearranged. A user or customer mayvisit a terminal which may be a virtual currency terminal, for example.

The customer may be presented with a series of user interfaces in aninterview to allow for ascertaining the customer's specifications for atransaction request. The customer interview corresponds to 965-969, forexample. A machine state corresponds to 964 a-964 d, for example. Themachine state may be stored in any location between the client and thecloud service. For example, the machine state may be stored or cachedlocally at the terminal, near the edge or fog layer, or at a centralserver.

During the customer interview, queries/requests (962 a-962 e) andupdates (963 a-963 e) may be made between the terminal and a softwareservice. The queries and updates may handle and/or update a machinestate (964 a-964 d) associated with the terminal. It will be understoodthat data elements 964 a-964 d could include other parameters.Additionally, such data elements could include, for example, API keysand/or secret keys.

In one embodiment, a customer may select to sell a virtual currency 965in exchange for cash via a cash withdrawal at the terminal. An initialstate for the terminal may be empty or null, for example. The initialstate may be requested 962 a before or during the customer's initialselection 965, for example and communicated from a software serviceprovider via a secure session via a VPN. The query may be communicatedfrom the software service provider as an encrypted payload that isdecrypted at the terminal. For example, a JSON data element may becreated or prepared by the software service provider. The data elementmay be encrypted and delivered to the terminal.

After the customer's selection to sell virtual currency, an update forthe terminal machine state may be communicated to a software serviceprovider via a secure session via a VPN. The update may include thedelta or changes to the initial or current machine state. The update maybe communicated to the software service provider as an encryptedpayload. For example, a JSON data element may be created or prepared atthe terminal. The data element may be encrypted and delivered to thesoftware service provider 963 a. The software service provider maydecrypt the payload to reveal a decrypted payload 964 a and update themachine state for the terminal, for example by updating a database ordatastore.

The current machine state may be queried or requested 962 b before orduring the customer's next selection 966, for example and communicatedfrom a software service provider via a secure session via a VPN. Thequery may be communicated from the software service provider as anencrypted payload that is decrypted at the terminal. For example, a JSONdata element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may select a virtual currency 966 to sell in exchange forcash via a cash withdrawal at the terminal.

After the customer's selection to sell “Bitcoin” 966, for example, anupdate for the terminal machine state may be communicated to a softwareservice provider via a secure session via a VPN. The update may includethe delta or changes to the initial or current machine state. The updatemay be communicated to the software service provider as an encryptedpayload 963 b. For example, a JSON data element may be created orprepared at the terminal. The data element may be encrypted anddelivered to the software service provider. The software serviceprovider may decrypt the payload 963 b and update the machine state forthe terminal, for example by updating a database or datastore.

The current machine state may be queried or requested 962 c before orduring the customer's next selection 967, for example, and communicatedfrom a software service provider via a secure session via a VPN. Thequery may be communicated from the software service provider as anencrypted payload that is decrypted at the terminal. For example, a JSONdata element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may select a virtual currency amount 967 to sell 1 Bitcoin(BTC).

After the customer's selection to sell “1 BTC,” for example, an updatefor the terminal machine state may be communicated to a software serviceprovider via a secure session via a VPN. The update may include thedelta or changes to the initial or current machine state. The update maybe communicated to the software service provider as an encrypted payload963 c. For example, a JSON data element may be created or prepared atthe terminal. The data element may be encrypted and delivered to thesoftware service provider. The software service provider may decrypt thepayload to reveal a decrypted payload 964 c and update the machine statefor the terminal, for example by updating a database or datastore.

The current machine state may be queried or requested 962 d before orduring the customer's next selection or action 968, for example, andcommunicated from a software service provider via a secure session via aVPN. The query may be communicated from the software service provider asan encrypted payload that is decrypted at the terminal. For example, aJSON data element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may enter a virtual currency wallet address 968.

After the customer's entry, for example, an update for the terminalmachine state may be communicated to a software service provider via asecure session via a VPN. The update may include the delta or changes tothe initial or current machine state. The update may be communicated tothe software service provider as an encrypted payload 963 d. Forexample, a JSON data element may be created or prepared at the terminal.The data element may be encrypted and delivered to the software serviceprovider. The software service provider may decrypt the payload toreveal a decrypted payload 964 d and update the machine state for theterminal, for example by updating a database or datastore.

The current machine state may be queried or requested 962 e before orduring the customer's next selection or action 969, for example, andcommunicated from a software service provider via a secure session via aVPN. The query may be communicated from the software service provider asan encrypted payload that is decrypted at the terminal. For example, aJSON data element may be created or prepared by the software serviceprovider. The data element may be encrypted and delivered to theterminal.

The customer may withdraw cash 969.

After the customer's action, for example, an update for the terminalmachine state may be communicated to a software service provider via asecure session via a VPN. The update may include the delta or changes tothe initial or current machine state. The update may be communicated tothe software service provider as an encrypted payload 963 e. Forexample, a JSON data element may be created or prepared at the terminal.The data element may be encrypted and delivered to the software serviceprovider. The software service provider may decrypt the payload toreveal a decrypted payload and update the machine state for theterminal, for example by updating a database or datastore.

User Defined Security Protocols

In one embodiment, an operator or vendor is allowed to select varioussettings to customize a security protocol. Any individual setting, orcombination of settings, may be used together to provide a factor orvarious factors.

-   -   a. One setting may be a minimum purchase amount setting.    -   b. One setting may be a maximum purchase setting.    -   c. One setting may be a customer identification requirement. A        customer identification requirement may be comprised of one or        more of the following, for example:        -   i. SMS Verification        -   ii. Fingerprint        -   iii. Part of a social security number, for example, the last            four digits        -   iv. Photo ID        -   v. Face photo        -   vi. Barcode or Magnetic Stripe Scan of government ID        -   vii. First name        -   viii. Last name        -   ix. Address        -   x. Date of Birth        -   xi. A third party trust or risk score        -   xii. A bank card    -   d. A 24-hour customer volume limit    -   e. A minimum customer age

Linking/Monitoring “Shared” Profiles

When a customer or user submits an ID, the data on the ID is comparedwith all other customers in the owner-operator's customer database. Ifthe ID data matches any other customers other than the current customerat the machine, the system or software may flag the customer as havingsubmitted a duplicate ID. The customer's account is then placed in the‘pending review’ state for manual review by the owner-operator, and thesystem or software may alert the owner-operator via a text message andemail notification of the behavior.

Owner-operators may ‘link’ different customers or users together with acommon unique identifier “UUID”. For example, when two or more customerprofiles are ‘linked’ through a unique identifier, the customers'available purchasing power for buying and selling on theowner-operator's machines is inclusive of the daily volume done acrossall the linked profiles.

Linked Profiles Example:

Customer A has a $500 purchasing power based on their verification tier.

Customer A and Customer B are linked to a custom unique identifier.

Customer B has already transacted $200 for the day.

When Customer A visits an owner-operator's machine, they will only beable to buy $300.

Freezing “UUID” Accounts/Profiles

Owner-operator may also automatically freeze transactions for customerswho have been “linked” together as a UUID because it is suspected theyare sharing financial information. Such a feature permits theowner-operator to have complete control over who is using theirterminals or kiosks, by freezing transactions associated with specificcustomers, whereby no virtual currency will be sent thus allowing foradditional due diligence to be gathered before allowing a transaction tobe completed.

Detecting “Shared” Virtual Currency Wallets

The system and method also may allow the ability to detect when acustomer's virtual currency wallet address has been shared betweenmultiple customers. When a customer enters a virtual currency walletaddress to where they desire their virtual currency to be sent, thesoftware automatically cross-references this address across all of theowner-operator's transactions. If the address has already been used by adifferent customer whose profile is not already linked to the currentcustomer through a common unique identifier, the current customer'saccount may then placed in the ‘pending review’ state for manual reviewby the owner-operator, and the software alerts the owner-operator via atext message and email notification of the shared wallet address.

Detecting Contradictory Account Information

The system and method may allow the ability to detect and flag whenthere is a mismatch between information submitted by a customer atdifferent verification tiers. For instance, if a customer scans an IDthat includes the name “Bob Smith” but then later submits a registrationapplication with the name of “Johnny Appleseed” their account may beplaced in the ‘pending review’ state for manual review by theowner-operator, and the system or software may alert the owner-operatorvia a text message and email notification of the customer identificationmismatch.

Customer Volume Limits

The system and method may allow the ability to manually set the volumelimits for a given customer, regardless of where they may otherwisestand based on the information they've submitted and theowner-operator's requirements. This allows owner-operators toeffectively scale a customer's purchasing power up or down based onperceived risk or enhanced due-diligence.

Crypto Wallet Address Volume Limits

The system and method may allow a terminal or kiosk owner-operator toset volume limits for a specific virtual currency wallet address in theevent that a customer (or customers) is/are using said wallet to avoidnormal KYC/AML, detection.

Ownership Pledge of Crypto Wallet

The system and method may require a terminal or kiosk customers toaccept personal ownership of the wallet that they are using whentransacting on the kiosk, which acts as a pre-emptive safeguard againstunlawful money transmission, in addition to helping flag and preventpossible scam-related transactions where users are, under duress, toldto send money to third parties.

Automatic Account Freeze—Age

The system and method may permit a terminal or kiosk owner-operator toimplement a standard procedure to freeze all new customer accountsdepending on the customer's age. For example, an owner-operator can seta rule for all his/her kiosks that all new customers under 18 whoregister an account will be frozen until reviewed and then approved byowner-operator.

Blacklisting Customers/Accounts

The system and method may allow the ability to “blacklist” virtualcurrency wallet addresses and ID cards. This provides additionalalerting to the owner-operator, as they receive an additional textmessage and email notification in the event that any customer enters awallet address or scans an ID card that has been blacklisted by theowner-operator. Any customer submitting a blacklisted datapoint isautomatically placed in the ‘pending review’ state for manual review bythe owner-operator.

“Hours of Operation” Controls

The system and method may allow the ability for owner-operators tospecify hours of operation for their terminals or kiosks. This ensuresthat the owner-operator is only providing exchange services throughtheir kiosks between a set opening and closing time schedule. The kioskbecomes unavailable between the hours after closing and before openingtime and customers are not able to transact.

Face Detection

A face detection process may occur at a client terminal. For example ahardware camera may be used to gather user image or video data. A user'sface may be detected within the data, for example, by selecting imageframes or frames within a video containing a detected face.

In one embodiment, some or all of a face detection may occur at a clientterminal. For example, a face may be identified and localized in animage or video data of a user. Coordinates of facial features may bedetermined and bounding boxes may be defined for each feature orcombination of features. Facial attributes and landmarks may bedetected, and distances between features or landmarks may be determined.The scale and orientation of a detected face may be determined. Aconfidence score may be determined which provides a confidence levelestimate of the face detection prediction or determination. A confidencescore may be used to determine a next process.

In one embodiment, parts of such image or video data, or processed orpreprocessed data, may be forwarded to a core service provider orvendor, or further to a service provider, and face detection as abovemay be carried out by the service. For example a base64 encoded image orfull image file may be communicated to the server from a clientterminal. The service provider may be a software service provider thatmay be a third party software service provider.

For example, data may be forwarded from the core service provider orvendor to a third party software service provider in the form of an HTTPrequest to an API endpoint, for example, a URL, of the third partysoftware service provider, and responses may be returned. HTTP methodsused may include, for example GET, HEAD, POST, PUT, PATCH, DELETE,CONNECT, OPTIONS and TRACE. The HTTP requests and/or responses mayinclude application/json content type, wherein data may be JSON encodeddata. Additionally HTTP status codes may be used to indicate success andfailure.

An HTTP request to an API endpoint may require authentication. Forexample, the API may conform to a Representational State Transfer (REST)style. For example, an API key, token, access key, and/or secret key maybe provided by the third party software service to the core serviceprovider or vendor. Keys may be included in HTTP headers, for example,for every HTTP request. Keys may be in the form of a string, such as abase64 encoded string, for example. Similarly, a timestamp may beincluded in HTTP headers for HTTP requests to an API endpoint. AHash-based Message Authentication Code may be computed using a hashfunction, for example, a SHA256 hash function.

An HTTP request to an API endpoint may include a payload. The requestand payload may be formatted as any HTTP request. For example, a requestmay be made using various programming languages or combinations ofprogramming languages, such as CURL, Ruby, Python, Node, PHP, Java,and/or JSON.

The payload may include, for example, a base64 encoded image version ora full image file.

The service provider may return, to the core service provider or vendor,a result that may include one or more flags, states, parameters,metrics, or scores associated with the request. For example, 0, 1, or 2may be returned to indicate no match, partial match, or match. Theresult may be stored in association with the account, and the dateand/or time of the request and/or retrieval of the result may be alsostored. The result may include a payload formatted in HTML, XML, JSON,or another format.

For example, such a payload could include:

{  “Base64Image”: {   “ImageBytes”: “iVBORw0KGgoAAAANSUhEUgA...”  } }

Machine Learning (ML)

A server side model may be trained using user data, such as image orvideo data. Image or video data may be forwarded to the server from aclient terminal.

In one embodiment, parts of such data, or processed or preprocessed datamay be forwarded to the server, for example a base64 encoded image orfull image file may be communicated to the server from a clientterminal. A decentralized learning model may be carried out on a clientterminal device or server-side.

An application on the terminal device may download a machine learningmodel, for example, in compressed form. Such a model may also bepre-installed on a client terminal. Such a model may be pre-trained on aselected dataset, for example, currently known users, or known criminalsetc. Known users, for example, may be those for which image, video, orface data already exists, associated with an account, and/or has beenverified. Changes to the model, for example, addition of new user data,on a server may be downloaded to a terminal. This allows for lessdependency on online connectivity. For example, preprocessing andtraining of the model may be carried out at a terminal without needingto send data to a server, reducing overhead for the client and server.For example, a server machine learning model may be retrained simplyusing delta values calculated at the client and sent to the server. Thisis additionally advantageous since the system can function offline.Round-trip to server and processing time is also reduced, creating alower latency for the end user.

Computation, storage, networking, decision making, and data managementresources and applications may be placed or allocated at a server of,for example, a cloud service provider, or nearer the edge. For example,resources may be allocated network elements, such as servers, cloudlets,or caches, closer to the end user at a client device may be utilized. Inone example, fog computing may place resources closer to end users toreduce latency, for example.

Some examples of the advantages of the presented technology includespeed, efficiency, and security over present systems. In one example, byperforming more CPU intensive processes closer to the edge or at theendpoint, transmission of data requiring heavier bandwidth, such asimage or video, may be reduced or eliminated, in some cases. In anotherexample, privacy may be more preserved when such data items need not betransmitted through the network.

Therefore, placing resources and performing computations closer to theend user has advantages for processes such as facial recognition interminal devices such as reducing latency and creating more relevancyfor end users and/or providing relevant data for computations. Forexample, a terminal device may be perform a facial recognition processfor an end user, however, since the end user must be physically presentat the geographic location of the device or terminal, the likelihood ofthe user revisiting the same device, or nearby devices, is increased.Therefore, maintaining data associated with the user's facialrecognition process closer to the geographic endpoint where it isperformed provides a more relevant dataset and reduces the need forcentral server round trips, for example. Computational load is alsodecreased for each request. That is, rather than one large shareddataset, many datasets are effectively created and localized orhyper-localized.

In one embodiment, a hierarchy of computational resources is provided.For example, a central server or software service may be provided as afirst, top, or core layer, such as in a cloud layer. At least a secondlayer may be provided between the first layer and an edge layer ofdevices or terminal. The second layer may contain computationalresources such as servers, proxies, or caches between the top layerelements and a subset of edge elements. Each of the network elements ofthe second layer may be then more closely associated with particularedge devices, wherein the edge elements may be with closer proximity toeach other. Thus, the second elements may be more closely associatedwith particular geographic locales.

In one embodiment, various important or relevant features represented asnumerical vectors are extracted from an image or video of a customer atthe terminal or device.

Extracted features may be compared to, for example, features of trainingimages, which may be various images of the same face, for example, in adatabase. For such a comparison, the database is queried in order todetermine the nearest-neighbor feature for some or all of each featureextracted at the terminal or device. An approximation nearest-neighborsearch may be executed.

The closest feature matched data may be selected, which may begeometrically verified. Accordingly, a threshold value may be determinedabove which a match is considered to be found. If it is determined thata match is not found at the terminal or device, a request may beforwarded to a cloud server, for example. The request may include theextracted features and/or image gathered.

A model present at the terminal or device may be retrained using thefeatures or feature data gathered.

In one embodiment, a geographic location of a device may be determined.From the geographic location, a subset of the model may be selected asthe most relevant. The subset may be compared with the image to checkfor a hit. If there is not hit, a broader subset of the model, or thewhole model, may be selected for comparison.

In one embodiment, various models may be stored, and a particular modelmay be selected according to one or more metrics. For example, ageographic location of a device may be used to determine a particularmodel. This model may be delivered, installed, and/or updated onterminals or devices in geographic locale. For example, a particularmodel may be used for terminals or devices with an IP address in theUnited States, or in a region of the United States such as a southwestregion.

Models may be blended models, including selected model sets, forexample, criminal data sets plus geographic user data sets.

FIG. 10 is a diagram showing a decentralized learning network.

Various network client devices (1002 a-1002 g), such as mobile phones(1002 a, 1002 f) or hardware terminals (1002 b-1002 e, 1002 g) aspreviously described may be connected through a cloud network 1001. Thecloud network may include services provided by a software serviceprovider.

In a decentralized learning network, client devices 1002 a-1002 g mayeach house or store local data and machine learning models. Changes tothe local models may be calculated and updated, and the updates may becommunicated to the service provider. The service provider may update aglobal model according to the updates received. Thereafter, the newglobal model or global updates may be distributed to the client devices.The process may be then repeated.

Nodes Management

In one embodiment, a vendor or software service provider may providesoftware services for terminals operated by one or more operators. Eachoperator may own or operate one or more terminals.

The terminals may be, for example, virtual currency transactionterminals, as above.

The vendor or software service provider may provide account managementtools to the operators, for example, the cloud-hosted account managementwebsites or portals.

Messaging Service

A messaging service may be provided by a service provider. The servicemay be delivered via cloud services. It will be understood that cloudservices may refer to software services and the like at any layer,including services closer to the edge, for example, such as in a fogcomputing environment, and in other examples, centralized servicesfurther from the edge.

The service provider, or core service provider, may make determinationsregarding transaction requests. One advantage of such an environment isthat it allows for centralized updating of the services and/ordeployment of updates.

Another advantage of this environment is scalability. In one example,cloud computing resources may be easily replicated and added or removedto meet demand, tailoring costs more precisely to meet demand.

Fee Settlement

In a virtual currency transaction in such an environment, severalparties may be owed fees, such as licensing fees or service fees, duringa transaction. The current system allows for the easy and organizedsettlement of such fees. For example, a central vendor may be owed afee, a terminal or point of sale operator may be owed a fee, etc.

In a virtual currency transaction, such fees may be settled using anycurrency, for example fiat or a virtual currency.

In the current system, the operator terminals or points of sale may beassociated with a virtual currency wallet address.

In one example, a transaction such as a purchase or sale of virtualcurrency in exchange for fiat currency may be carried out at a virtualcurrency terminal. In the example, a vendor may charge a fee of 1% ofthe transaction amount while the terminal owner and/or operator may haveset a fee of 10% of the transaction amount.

Thus, in one example, when a transaction occurs for USD $100, a vendormay be owed a fee of USD $1.00. A virtual currency exchange may bequeried at the time of the transaction to determine, for example, theexchange rate for the virtual currency. In one example, Bitcoin may bethe virtual currency. If a virtual currency exchange is queried and itis determined that the exchange rate for Bitcoin is $10,000, then a$1.00 fee would be equal to $1.00/$10,000.00 Bitcoin, or 0.0001 Bitcoin,for example. This fee value may be stored in a database or datastore,for example. The fee may be charged immediately, or at a later point intime.

In one embodiment, the fee may be charged by a software service provideror vendor making a request to withdraw funds from the terminaloperator's virtual currency wallet and deposit the funds into thevendor's virtual currency wallet.

Similarly, in one example, when a transaction occurs, a terminal'soperator or owner may be owed a fee. The fee may be set or determined bythe operator, using access to an account and through consoles aspresented previously. The fees may be communicated to a core softwareservice provider or vendor and updated in a database or datastore. Theupdated fees are used in the fee determinations and distributions.

In one example, a transaction such as a purchase or sale of virtualcurrency in exchange for fiat currency may be carried out at a virtualcurrency terminal. In the example, a vendor may charge a fee of 1% ofthe transaction amount while the terminal owner and/or operator may haveset a fee of 10% of the transaction amount.

Thus, in one example, when a transaction occurs for USD $100, anoperator may be owed a fee of USD $10.00. A virtual currency exchangemay be queried at the time of the transaction to determine, for example,the exchange rate for the virtual currency. In one example, Bitcoin maybe the virtual currency. If a virtual currency exchange is queried andit is determined that the exchange rate for Bitcoin is $10,000, then a$100.00 transaction amount would be equal to $100.00/$10,000.00 Bitcoin,or 0.01 Bitcoin, for example. Similarly, if a virtual currency exchangeis queried and it is determined that the exchange rate for Bitcoin is$10,000, then a $10.00 fee amount would be equal to $10.00/$10,000.00Bitcoin, or 0.001 Bitcoin, for example. Therefore, to purchase 0.01Bitcoin, a customer may be required to deposit USD $110.00 at the giventime.

In one embodiment, the operator fee may simply remain in the terminal ascash as profits. For the previous example, $10.00 remains in theterminal as cash profit.

In another example, a customer may request a cash withdrawal, in theexample above wherein 1 Bitcoin is priced at $10,000 and the operatorfee is 10%, then the customer may send 1 Bitcoin to the operator walletaddress in exchange for withdrawing $9,000 USD in cash. The operator maydispose of the 0.1 Bitcoin profit in any manner, such as by selling forcash, keeping the virtual currency, or a combination of the two.

Example embodiments are provided:

-   -   A method, system, or computer readable medium storing        instructions, for securely handling, by a software service        provider, a virtual currency transaction between a customer and        an operator of a point of sale, the method comprising:    -   creating a first user account for a first user, wherein creating        the first user account comprises:        -   receiving, by the software service provider, first data            wherein the first data comprises identification document            information associated with the first user;        -   creating, by the software service provider, an account            identifier for the first user;        -   storing, by the software service provider, in association            with the first user account, the account identifier in a            database or datastore;    -   receiving the virtual currency transaction request, the virtual        currency transaction request triggered by the first customer at        the point of sale;        -   wherein the point of sale comprises:            -   a hardware terminal including at least one processor,                the at least one processor having a configuration to                execute virtual currency transactions, the configuration                including:                -   instructions for receiving virtual currency                    parameters;                -   instructions for transmitting at least some of the                    virtual currency parameters to the software service                    provider;                -   instructions for receiving and processing messages                    from the software service provider;    -   establishing a secure session between the software service        provider and the point of sale;        -   wherein the secure session is established using at least a            secure socket layer (SSL) or transport layer security (TLS)            protocol;        -   wherein the secure session is established using a secured            connection using a virtual private network (VPN).    -   performing a first processing of the virtual currency        transaction, wherein performing the first processing of the        virtual currency transaction comprises:        -   receiving, by the software service provider, an encrypted            first payload;            -   wherein the encrypted first payload is produced by                encrypting a first payload, the first payload produced                by the point of sale, and wherein the first payload                comprises a phone number, the phone number received from                the first customer at the point of sale;            -   wherein the encrypted first payload communicated to the                software service provider from the point of sale during                the secure session using the secured connection;        -   identifying, by the software service provider, an IP address            associated with the VPN;        -   allowing, by software service provider, traffic from the VPN            based on the IP address; and        -   decrypting, by the software service provider, the encrypted            first payload;        -   sending, by the software service provider, an SMS            verification code to the phone number;    -   performing a second processing of the virtual currency        transaction, wherein performing the second processing of the        virtual currency transaction comprises:        -   receiving, by the software service provider, an encrypted            second payload;            -   wherein the encrypted second payload is produced by                encrypting a second payload, the second payload produced                by the point of sale, and wherein the second payload                comprises at least some of the virtual currency                parameters;            -   wherein the encrypted second payload communicated to the                software service provider from the point of sale during                the secure session using the secured connection;        -   identifying, by the software service provider, the IP            address associated with the VPN;        -   allowing, by software service provider, traffic from the VPN            based on the IP address; and        -   decrypting, by the software service provider, the encrypted            second payload;    -   identifying a first security factor associated with the first        customer, wherein the identifying the first security factor        associated with the first customer comprises:        -   the software service provider forwarding a first HTTP/HTTPS            request to at least one of a set of third party service            providers,        -   wherein the request is an age verification request, and        -   wherein the first request comprises:            -   a third payload;                -   wherein the third payload comprises at least a                    portion of the first data;        -   the software service provider receiving a first third party            response from at least one of the set of third party service            providers;    -   performing a third processing of the virtual currency        transaction, wherein performing the third processing of the        virtual currency transaction comprises:        -   receiving, by the software service provider, an encrypted            fourth payload;            -   wherein the encrypted fourth payload is produced by                encrypting a fourth payload, the fourth payload produced                by the point of sale, and wherein the fourth payload                comprises at least second data including at least a                virtual currency wallet address associated with the                first customer;            -   wherein the encrypted fourth payload communicated to the                software service provider from the point of sale during                the secure session using the secured connection;        -   identifying, by the software service provider, the IP            address associated with the VPN;        -   allowing, by software service provider, traffic from the VPN            based on the IP address; and        -   decrypting, by the software service provider, the encrypted            fourth payload;    -   identifying a second security factor associated with the first        customer, wherein the identifying the second security factor        associated with the first customer comprises:        -   the software service provider forwarding a second HTTP or            HTTPS request to at least one of the set of third party            service providers, wherein the second request comprises:        -   at least a risk analysis; and        -   a fifth payload;            -   wherein the fifth payload comprises at least a portion                of the second data;        -   receiving a second third party response associated with the            virtual currency wallet address from at least one of the set            of third party service providers;    -   identifying a facial recognition factor associated with the        first customer, wherein the identifying the facial recognition        factor associated with the first customer comprises:        -   receiving, by the software service provider, an encrypted            sixth payload;            -   wherein the encrypted sixth payload is produced by                encrypting a sixth payload, the sixth payload produced                by the point of sale, and wherein the sixth payload                comprises at least one parameter associated with image                or video data associated with the first customer's face;            -   wherein the encrypted sixth payload communicated to the                software service provider from the point of sale during                the secure session using the secured connection;        -   identifying, by the software service provider, the IP            address associated with the VPN;        -   allowing, by software service provider, traffic from the VPN            based on the IP address; and        -   decrypting, by the software service provider, the encrypted            sixth payload;    -   determining, by the software service provider, a risk level        associated with the user based on the first risk factor and the        second risk factor;    -   in response to determining that the risk level is less than a        threshold risk level or equal to an acceptable risk level:        -   sending, by the software service provider, an encrypted            seventh payload;            -   wherein the encrypted seventh payload is produced by                encrypting a seventh payload, the seventh payload                produced by the software service provider, and wherein                the seventh payload comprises at least a message to the                point of sale to allow a completing of the transaction;            -   wherein the encrypted seventh payload communicated to                the point of sale from the software service provider                during the secure session using the secured connection;    -   logging the transaction details in a data storage by the        software service provider, wherein the logging comprises at        least:        -   storing, in association with the account, a transaction            amount;        -   storing, in association with the account, a transaction date            or time;        -   storing, in association with the account, the IP address            associated with the transaction; and        -   storing, in association with the account, the virtual            currency wallet address.    -   A method for biometric authentication and securely handling, by        a software service provider, an operation between a first        visitor and an operator of a client, the method comprising:    -   establishing a first secure session between the software service        provider and the client;        -   wherein the secure session is established using at least a            secure socket layer (SSL) or transport layer security (TLS)            protocol;        -   wherein the first secure session is established using a            first secured connection using a virtual private network            (VPN);    -   downloading or storing, in at least one computer memory, a        machine learning model or machine learning model parameters        locally to the client, wherein the client comprises an edge        hardware device or edge server;        -   wherein the edge hardware device may be a dispensary            terminal, a client terminal, a node, or a vending machine;        -   wherein the machine learning model or machine learning model            parameters are communicated to the client from the software            service provider during the first secure session using the            first secured connection;            wherein the machine learning model comprises, at least:    -   a trained or pre-trained deep neural network or convolutional        neural network based model;    -   wherein the deep neural network or convolutional neural network        based model has been trained on, at least:        -   a dataset including information about known customers and/or            restricted users;            -   wherein the dataset includes data based on images of the                known customers and restricted users, the images                including facial features of the known customers and                restricted users;    -   receiving an operation from a first visitor at the edge device;    -   identifying local facial recognition data associated with the        first visitor, wherein the identifying the local facial        recognition data associated with the first visitor comprises:        -   gathering, using a camera, image or video data of the first            visitor's face;        -   extracting a plurality of facial features associated with            the image or video data;    -   calculating, at the edge device or edge server, using the        machine learning model whether the first visitor matches a known        user or restricted user, wherein the calculating comprises, at        least:        -   determining a nearest neighbor probability;        -   determining whether the nearest neighbor probability exceeds            a threshold probability;    -   based on the calculating, determining whether to authenticate        the first visitor;    -   updating, at the edge device or edge server, the machine        learning model using the local facial recognition data to        produce a first updated machine learning model;    -   determining new model parameters reflecting the first updated        machine learning model;    -   performing a first processing of the new model parameters,        wherein performing the first processing of the new model        parameters comprises:        -   producing an encrypted first payload;            -   wherein the encrypted first payload is produced by                encrypting a first payload, the first payload produced                by the client, and wherein the first payload comprises                at least the new model parameters;    -   establishing a second secure session between the software        service provider and the client;        -   wherein the secure session is established using at least the            secure socket layer (SSL) or transport layer security (TLS)            protocol;        -   wherein the second secure session is established using a            second secured connection using the virtual private network            (VPN);    -   communicating the encrypted first payload to a server of the        software service provider, without transmitting the image to the        server;        -   wherein the encrypted first payload is communicated to the            server of the software service provider from the client            during the second secure session using the second secured            connection;    -   downloading or storing locally to the client, in the least one        computer memory, updated machine learning model parameters        reflecting a second updated machine learning model;    -   wherein the second updated machine learning model is a global        model that includes, at least, updates based on the local facial        recognition data; and    -   referring to the first updated machine learning model or second        updated machine learning model for a subsequent visitor        authentication request.    -   A method for securely handling, by a software service provider,        one or more actions in a distributed terminal network system,        the method comprising:        -   a) managing or maintaining, by the software service            provider, the distributed terminal network system, the            distributed terminal network system comprising at least:            -   i) one or more specialized servers providing a software                service by the software service provider, wherein the                one or more specialized servers are in communication,                through a network, with at least:                -   a distributed network of terminals, wherein:                -    each terminal of the terminals comprises a hardware                    terminal, node, point of sale, kiosk, and/or client;            -   ii) at least one load balancer configured to route                network traffic to the one or more specialized servers;                and            -   iii) one or more data storage devices;        -   b) creating a first operator account for a first operator,            by the software service provider, wherein creating the first            operator account comprises:            -   i) creating, by the software service provider, a first                operator account identifier for the first operator;            -   ii) storing, by the software service provider, in                association with the first operator account, the first                operator account identifier in the one or more data                storage devices;            -   iii) associating, by the software service provider,                login credentials with the first operator; and            -   iv) storing, by the software service provider, the login                credentials in the one or more data storage devices;        -   c) associating a first set of terminals with the first            operator, wherein associating the first set of terminals            with the first operator comprises:            -   i) storing first operator data, by the software service                provider, in association with the first operator                account, wherein the first operator data comprises:                -   one or more terminal identifiers associated with                    each of the terminals of the first set of terminals,                    wherein each of the first set of terminals is owned                    by, operated by, or associated with, the first                    operator;        -   d) receiving an authentication request to access the first            operator account, wherein:            -   i) the authentication request is received via a first                HTTP/HTTPS request, the first HTTP/HTTPS request                including the login credentials;        -   e) authenticating the authentication request, wherein the            authenticating comprises:            -   i) verifying the login credentials;        -   f) in response to the authenticating, allowing access to a            first operator account portal allowing selections or            updates, wherein the first operator account portal            comprises:            -   i) a plurality of graphical user interfaces (GUIs), the                GUIs including at least:                -   information associated with each terminal of the                    first set of terminals, wherein the information                    includes:                -    an identifier label associated with each of the                    first set of terminals;                -    configuration preferences for each terminal of the                    first set of terminals, wherein the configuration                    settings include:                -    security settings, wherein the security settings                    comprise:                -    KYC/AML configuration settings;                -    fee settings; and/or,                -    controls for each of the first set of terminals,                -    wherein the controls include:                -    reboot commands;        -   g) receiving selections or updates made in the first            operator account portal, wherein:            -   the selections or updates are received via a second                HTTP/HTTPS request;        -   h) based on the selections or updates, updating            configuration settings for the first set of terminals to            create a set of updated settings, wherein updating            comprises:            -   i) storing configuration data in the one or more data                storage devices, wherein the configuration data reflects                the selections or updates.        -   i) creating a first user account for a first user, wherein            creating the first user account comprises:            -   i) receiving, by the software service provider, first                user data wherein the first user data comprises                identification document information associated with the                first user;            -   ii) creating, by the software service provider, a user                account identifier for the first user; and            -   iii) storing, by the software service provider, in                association with the first user account, the user                account identifier in the one or more data storage                devices;        -   j) receiving, by the software service provider, an operation            by a first visitor at a hardware terminal, wherein the            hardware terminal belongs to the first set of terminals by:            -   i) establishing a secure session between the software                service provider and the hardware terminal;            -   ii) wherein the secure session is established using at                least a secure socket layer (SSL) or transport layer                security (TLS) protocol; and            -   iii) wherein the secure session is established using a                secured connection using a virtual private network                (VPN).        -   k) performing a first processing of the operation, wherein            performing the first processing of the operation comprises:            -   i) receiving, by the software service provider, an                encrypted first payload;            -   ii) wherein the encrypted first payload is produced by                encrypting a first payload, the first payload produced                by the hardware terminal, and wherein the first payload                comprises a phone number, the phone number received from                the first visitor at the hardware terminal;            -   iii) wherein the encrypted first payload is communicated                to the software service provider from the hardware                terminal during the secure session using the secured                connection;            -   iv) identifying, by the software service provider, an IP                address associated with the VPN;            -   v) allowing, by software service provider, traffic from                the VPN based on the IP address;            -   vi) decrypting, by the software service provider, the                encrypted first payload; and            -   vii) sending, by the software service provider, an SMS                verification code to the phone number.        -   l) performing a second processing of the operation, wherein            performing the second processing of the operation comprises:            -   i) receiving, by the software service provider, an                encrypted second payload;            -   ii) wherein the encrypted second payload is produced by                encrypting a second payload, the second payload produced                by the hardware terminal;            -   iii) wherein the encrypted second payload is                communicated to the software service provider from the                hardware terminal during the secure session using the                secured connection;            -   iv) identifying, by the software service provider, the                IP address associated with the VPN;            -   v) allowing, by software service provider, traffic from                the VPN based on the IP address; and            -   vi) decrypting, by the software service provider, the                encrypted second payload;        -   m) identifying a first security factor associated with the            first visitor, wherein the identifying the first security            factor associated with the first visitor comprises:            -   i) the software service provider forwarding a third                HTTP/HTTPS request to at least one of a set of third                party service providers,                -   wherein the request is an age verification request,                    and                -    wherein the first request comprises:                -    a third payload; and                -    wherein the third payload comprises at least a                    portion of the first user data; and            -   ii) the software service provider receiving a first                third party response from at least one of the set of                third party service providers.        -   n) performing a third processing of the operation, wherein            performing the third processing of the operation comprises:            -   i) receiving, by the software service provider, an                encrypted fourth payload;            -   ii) wherein the encrypted fourth payload is produced by                encrypting a fourth payload, the fourth payload produced                by the hardware terminal, and wherein the fourth payload                comprises at least second data;            -   iii) wherein the encrypted fourth payload is                communicated to the software service provider from the                hardware terminal during the secure session using the                secured connection;            -   iv) identifying, by the software service provider, the                IP address associated with the VPN;            -   v) allowing, by software service provider, traffic from                the VPN based on the IP address; and            -   vi) decrypting, by the software service provider, the                encrypted fourth payload;        -   o) identifying a second security factor associated with the            first visitor, wherein the identifying the second security            factor associated with the first visitor comprises:            -   i) the software service provider forwarding a fourth                HTTP or HTTPS request to at least one of the set of                third party service providers, wherein the second                request comprises:                -   a fifth payload; and                -   wherein the fifth payload comprises at least a                    portion of the second data;            -   ii) receiving a second third party response from at                least one of the set of third party service providers.        -   p) identifying a facial recognition factor associated with            the first visitor, wherein the identifying the facial            recognition factor associated with the first visitor            comprises:            -   i) receiving, by the software service provider, an                encrypted sixth payload;            -   ii) wherein the encrypted sixth payload is produced by                encrypting a sixth payload, the sixth payload produced                by the hardware terminal, and wherein the sixth payload                comprises at least one parameter associated with image                or video data associated with the first visitor's face;            -   iii) wherein the encrypted sixth is payload communicated                to the software service provider from the hardware                terminal during the secure session using the secured                connection;            -   iv) identifying, by the software service provider, the                IP address associated with the VPN;            -   v) allowing, by software service provider, traffic from                the VPN based on the IP address; and            -   vi) decrypting, by the software service provider, the                encrypted sixth payload.        -   q) determining, by the software service provider, a score            associated with the first visitor based on the first factor            and the second factor;        -   r) in response to determining that the score is less than a            threshold score or equal to an acceptable score:            -   i) sending, by the software service provider, an                encrypted seventh payload;            -   ii) wherein the encrypted seventh payload is produced by                encrypting a seventh payload, the seventh payload                produced by the software service provider, and wherein                the seventh payload comprises at least a message to the                hardware terminal to allow a completing of the                operation; and            -   iii) wherein the encrypted seventh payload is                communicated to the hardware terminal from the software                service provider during the secure session using the                secured connection.        -   s) logging operation details in the one or more data storage            devices, by the software service provider, wherein the            logging comprises at least:            -   i) storing, in association with the first user account,                an operation parameter;            -   ii) storing, in association with the first user account,                an operation date or time; and            -   iii) storing, in association with the first user                account, the IP address associated with the operation.

Advantages

Many advantages arise over previous systems in the describedembodiments, for example.

First, the described embodiments provide an adaptive and more robustsecurity environment. For example, several factors for customers at aterminal, for example, are determined and leveraged. The combination offactors creates a nexus of confidence (or lack thereof) around a user.

Next, the piecemeal nature of requests/responses in certain embodimentsbetween a node and central service allows for a machine state to beconstantly known, stored, etc by the central service. Thus, data is noteasily lost or tampered with, for example, at the client or terminal.

Next, a connection interrupt between a hardware terminal, for example,has less impact on the security in the described embodiments. Asdescribed above, the machine state may be known or saved by the centralservice, and therefore it may be easily and securely restored, etc.

Next, in the described embodiments, the services are easily scalable andthe security services are easily modified and quickly implementedsystem-wide. This is because changes may be simply implemented in thecentral software services which are immediately used by some or allnodes or terminals. Thus, hardware, terminal, or client side changes areminimized.

Next, in the described embodiments, a central service can easilyleverage and implement services such as security services from thirdparties. New specialized services are constantly being created and madeavailable, and easily connecting, interacting, and quickly implementingthese services is highly advantageous. Since security often relies onquickly evolving against new threats, speed of implementation of newdefenses is of great value and importance.

Next, as provided previously, in some embodiments such as the abovefederated facial recognition systems are additionally advantageous sincesome or all of the system can function offline. Round-trip to server andprocessing time is also reduced, creating a lower latency for the enduser.

Environment

The present invention may be a system, an apparatus, a method, and/or acomputer program product at any possible technical detail level ofintegration. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages, and/or scripting languages, PHP, Python, JavaScript, or thelike. The computer readable program instructions may execute entirely onthe user's device, partly on the user's device, as a stand-alonesoftware package, partly on the user's device and partly on a remotedevice or entirely on the remote device or server. In the latterscenario, the remote device may be connected to the user's devicethrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externaldevice (for example, through the Internet using an Internet ServiceProvider). In some embodiments, electronic circuitry including, forexample, programmable logic circuitry, field-programmable gate arrays(FPGA), or programmable logic arrays (PLA) may execute the computerreadable program instructions by utilizing state information of thecomputer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

1. A method comprising: allowing access to a first account portal,console, or system that allows selections or updates, receivinginformation associated with selections or updates made in the firstaccount portal, console, or system; based on the information associatedwith the selections or updates, updating configuration settings for eachof the one or more terminals in the first set of terminals.
 2. Themethod of claim 1, further comprising: performing a first processing,wherein performing the first processing comprises: receiving a firstpayload; wherein the first payload comprises a phone number, the phonenumber received at the first hardware terminal; wherein the firstpayload is communicated from the hardware terminal; sending an SMSverification code to the phone number.
 3. The method of claim 1, furthercomprising: establishing a secure session between a software serviceprovider and the hardware terminal.
 4. The method of claim 1, furthercomprising: performing facial recognition or verification for a firstvisitor at a first terminal in the first set of terminals.
 5. The methodof claim 1, wherein one or more of the first set of terminals is acombination automated teller machine (ATM) and virtual currency kiosk.6. The method of claim 1, wherein one or more of the first set ofterminals dispenses a cannabis-containing product.
 7. The method ofclaim 1, wherein one or more of the first set of terminals dispenses atobacco-containing product.
 8. The method of claim 1, wherein one ormore of the first set of terminals is a combination automated tellermachine (ATM) and virtual currency kiosk capable of: transactions thatdo not utilize virtual currency; and transactions that utilize virtualcurrency.
 9. The method of claim 1, further comprising: creating a firstuser account for a first user, wherein creating the first user accountcomprises: receiving first user data wherein the first user datacomprises identification document information or identificationinformation associated with the first user; creating a user or accountidentifier associated with the first user; and/or storing in associationwith the first user account, the user or account identifier.
 10. Themethod of claim 1: wherein the first account portal, console, or systemcomprises: one or more graphical user interfaces (GUIs), the GUIsincluding at least: information associated with one or more terminals ina first set of terminals, wherein the information includes: anidentifier label associated with each of the one or more terminals inthe first set of terminals; settings for each of the one or moreterminals in the first set of terminals, wherein the settings include: first settings, wherein the first settings comprise:  compliancesettings;  preference settings;  fee settings; and/or  controls for eachof the first set of terminals.
 11. A system comprising: at least onememory; one or more processors in communication with the memory; thesystem configured for: allowing access to a first account portal,console, or system that allows selections or updates; receivinginformation associated with selections or updates made in the firstaccount portal, console, or system; based on the information associatedwith the selections or updates, updating configuration settings for eachof the one or more terminals in the first set of terminals.
 12. Thesystem of claim 11, further configured for: performing a firstprocessing, wherein performing the first processing comprises: receivinga first payload; wherein the first payload comprises a phone number, thephone number received at the first hardware terminal; wherein the firstpayload is communicated from the hardware terminal; sending an SMSverification code to the phone number.
 13. The system of claim 11,further configured for: establishing a secure session between a softwareservice provider and the hardware terminal.
 14. The system of claim 11,further configured for: performing facial recognition or verificationfor a first visitor at a first terminal in the first set of terminals.15. The system of claim 11: wherein one or more of the first set ofterminals is a combination automated teller machine (ATM) and virtualcurrency kiosk.
 16. The system of claim 11: wherein one or more of thefirst set of terminals dispenses a cannabis-containing product.
 17. Thesystem of claim 11: wherein one or more of the first set of terminalsdispenses a tobacco-containing product.
 18. The system of claim 11:wherein one or more of the first set of terminals is a combinationautomated teller machine (ATM) and virtual currency kiosk capable of:transactions that do not utilize virtual currency; and transactions thatutilize virtual currency.
 19. The system of claim 11, further configuredfor: creating a first user account for a first user, wherein creatingthe first user account comprises: receiving first user data wherein thefirst user data comprises identification document information oridentification information associated with the first user; creating auser or account identifier associated with the first user; and/orstoring in association with the first user account, the user or accountidentifier.
 20. The system of claim 11: wherein the first accountportal, console, or system comprises: one or more graphical userinterfaces (GUIs), the GUIs including at least: information associatedwith one or more terminals in a first set of terminals, wherein theinformation includes: an identifier label associated with each of theone or more terminals in the first set of terminals; settings for eachof the one or more terminals in the first set of terminals, wherein thesettings include:  first settings, wherein the first settings comprise: compliance settings;  preference settings;  fee settings; and/or controls for each of the first set of terminals.
 21. One or morenon-transitory computer storage media encoded with computer programinstructions that when executed by one or more hardware terminals causethe one or more hardware terminals to perform operations comprising:allowing access to a first account portal, console, or system thatallows selections or updates; receiving information associated withselections or updates made in the first account portal, console, orsystem; based on the information associated with the selections orupdates, updating configuration settings for each of the one or moreterminals in the first set of terminals.
 22. The one or morenon-transitory computer storage media of claim 21, wherein theoperations further comprise: performing a first processing, whereinperforming the first processing comprises: receiving a first payload;wherein the first payload comprises a phone number, the phone numberreceived at the first hardware terminal; wherein the first payload iscommunicated from the hardware terminal; sending an SMS verificationcode to the phone number.
 23. The one or more non-transitory computerstorage media of claim 21, wherein the operations further comprise:performing facial recognition or verification for a first visitor at afirst terminal in the first set of terminals.
 24. The one or morenon-transitory computer storage media of claim 21: wherein one or moreof the first set of terminals is a combination automated teller machine(ATM) and virtual currency kiosk.
 25. The one or more non-transitorycomputer storage media of claim 21: wherein one or more of the first setof terminals dispenses a cannabis-containing product.
 26. The one ormore non-transitory computer storage media of claim 21: wherein one ormore of the first set of terminals dispenses a tobacco-containingproduct.
 27. The one or more non-transitory computer storage media ofclaim 21: wherein one or more of the first set of terminals is acombination automated teller machine (ATM) and virtual currency kioskcapable of: transactions that do not utilize virtual currency; andtransactions that utilize virtual currency.
 28. The one or morenon-transitory computer storage media of claim 21, wherein theoperations further comprise: creating a first user account for a firstuser, wherein creating the first user account comprises: receiving firstuser data wherein the first user data comprises identification documentinformation or identification information associated with the firstuser; creating a user or account identifier associated with the firstuser; and/or storing in association with the first user account, theuser or account identifier.
 29. The one or more non-transitory computerstorage media of claim 21: wherein the first account portal, console, orsystem comprises: one or more graphical user interfaces (GUIs), the GUIsincluding at least: information associated with one or more terminals ina first set of terminals, wherein the information includes: anidentifier label associated with each of the one or more terminals inthe first set of terminals; settings for each of the one or moreterminals in the first set of terminals, wherein the settings include: first settings, wherein the first settings comprise:  compliancesettings;  preference settings;  fee settings; and/or  controls for eachof the first set of terminals.
 30. A system comprising: one or morecomputers and one or more storage devices on which are storedinstructions that are operable, when executed by the one or morecomputers, to cause the one or more computers to perform operationscomprising: allowing access to a first account portal, console, orsystem that allows selections or updates; receiving informationassociated with selections or updates made in the first account portal,console, or system; based on the information associated with theselections or updates, updating configuration settings for each of theone or more terminals in the first set of terminals.